ASP.NET時間函數及其格式轉換

來源:互聯網
上載者:User
ASP.NET時間函數及其格式轉換

在SQL中DateTime為8位長度日期的指定形式為2003-12-31 

00:00:00而在ASP.NET上最常用的只是2003-12-31號一部分而已你可以使用 
DateTime.Now.ToString("d")或DateTime.Now.ToShortDateString(); 
不過具體格式是2003/12/31還是2003-12-31的話要看你的系統配置日期配置是哪一種. 
你要想確定取得2003-12-31指定的話使用.Tostring()使用者自訂格式 
格式的字元可以看上面說到的文檔. 

例如:
.ToString("yyyy-MM-dd")返回2003-11-25 
.ToString("yyyyMMdd")返回20031125 

DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") 返回2010-11-01 11:46:12
[轉自SDK中的文檔] 
d 將日顯示為不帶前置字元為零的數字(如 1)。如果這是使用者定義的數字格式中的唯一字元,請使用%d。 
dd 將日顯示為帶前置字元為零的數字(如 01)。 
ddd 將日顯示為縮寫形式(例如 Sun)。 
dddd 將日顯示為全名(例如 Sunday)。

M 將月份顯示為不帶前置字元為零的數字(如一月表示為 1)。如果這是使用者定義的數字格式中的唯一 字元,
請使用 %M。 

MM 將月份顯示為帶前置字元為零的數字(例如 01/12/01)。 
MMM 將月份顯示為縮寫形式(例如 Jan)。 
MMMM 將月份顯示為完整月份名(例如 January)。 
gg 顯示時代/紀元字串(例如 A.D.) 

h 使用12 小時制將小時顯示為不帶前置字元為零的數字(例如 1:15:15 PM)。如果這是使用者定義的數字格式中
的唯一字元,請使用 %h。 
hh 使用 12 小時制將小時顯示為帶前置字元為零的數字(例如 01:15:15 PM)。 
H 使用 24 小時制將小時顯示為不帶前置字元為零的數字(例如 1:15:15)。如果這是使用者定義的數字 

格式中的唯一字元,請使用 %H。 
HH 使用 24 小時制將小時顯示為帶前置字元為零的數字(例如 01:15:15)。 
m 將分鐘顯示為不帶前置字元為零的數字(例如 12:1:15)。如果這是使用者定義的數字格式中的唯一字元,
請使用 %m。 
mm 將分鐘顯示為帶前置字元為零的數字(例如 12:01:15)。 

s 將秒顯示為不帶前置字元為零的數字(例如 12:15:5)。如果這是使用者定義的數字格式中的唯一字元,
請使用 %s。 
ss 將秒顯示為帶前置字元為零的數字(例如 12:15:05)。 

F 顯示秒的小數部分。例如,ff 將精確顯示到百分之一秒,而 ffff 將精確顯示到萬分之一秒。 

使用者定義格式中最多可使用七個 f 符號。如果這是使用者定義的數字格式中的唯一字元,請使用 %f。 

T 使用 12 小時制,並對中午之前的任一小時顯示大寫的 A,對中午到 11:59 P.M 之間的任一小 

時顯示大寫的 P。如果這是使用者定義的數字格式中的唯一字元,請使用 %t。 
tt 使用 12 小時制,並對中午之前任一小時顯示大寫的 AM;對中午到 11:59 P.M 之間的任一小 
時顯示大寫的 PM。

y 將年份 (0-9) 顯示為不帶前置字元為零的數字。如果這是使用者定義的數字格式中的唯一字元,請使用%y。 
yy 以帶前置字元為零的兩位元字格式顯示年份(如果適用)。 
yyy 以四位元字格式顯示年份。 
yyyy 以四位元字格式顯示年份。 

z 顯示不帶前置字元為零的時區位移量(如 -8)。如果這是使用者定義的數字格式中的唯一字元,請使用%z。 
zz 顯示帶前置字元為零的時區位移量(例如 -08) 
zzz 顯示完整的時區位移量(例如 -08:00) 

同樣對時間也可以進行這樣的格式化..你可以使用自訂格式來設定你想要的格式輸出. 
你可以使用上表中各字元進行任意的組合不管前後次序多少如你寫入yyyy-yyyy也是可以的..不過我想沒 

有多少無聊的人會這麼做.的以是相當自由的 

注意的是:進行格式化的一定要是日期DateTime格式..在SQL中的類型也一樣.否則格式無效或出錯.特別 

是在DataGrid常{0:IFromat}的格式中會用到 

2)日期的輸入

我們在辦理入日期格式式常用DateTime.Pares() 
但是這個形式的轉換是相當有限的,有些C#是會不懂你寫入的日期格式的如20031231大家都明白是2003- 

12-31號可以C#不認識他.我們可以這樣子進行如下 
//設定語言國家 
System.IFormatProvider format=new System.Globalization.CultureInfo("zh-CN",true); 
//指定轉換格式 
Response.Write(DateTime.ParseExact(this.TextBox1.Text,"yyyyMMdd",format)); 
這樣他就能看出20031231號的日期格式了 

不過可惜他只能夠對yyyyMMdd形式進行不能對其它格式進行轉換是不是美中不足? 
不過.NET提供了另一種重載版本. 
public static DateTime ParseExact(string, string[], IFormatProvider, DateTimeStyles); 
可對指定的幾種日期格式進行轉換. 
不過具體的操作我想還是大家自己去實驗一下效果可能會更好一些 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.