1)日期格式化顯示
在SQL中DateTime為8位長度日期的指定形式為2003-12-31 00:00:00
而在ASP.NET上最常用的只是2003-12-31號(hào)一部分而已你可以使用
DateTime.Now.ToString("d")或DateTime.Now.ToShortDateString();
不過具體格式是2003/12/31還是2003-12-31的話要看你的系統(tǒng)配置日期配置是哪一種.
你要想確定取得2003-12-31指定的話使用.Tostring()用戶自定義格式
格式的字符可以看上面說到的文檔.
如.ToString("yyyy-MM-dd")返回2003-11-25
.ToString("yyyyMMdd")返回20031125
d 將日顯示為不帶前導(dǎo)零的數(shù)字(如 1)。如果這是用戶定義的數(shù)字格式中的唯一字符,請(qǐng)使用
%d。
dd 將日顯示為帶前導(dǎo)零的數(shù)字(如 01)。
ddd 將日顯示為縮寫形式(例如 Sun)。
dddd 將日顯示為全名(例如 Sunday)。
M 將月份顯示為不帶前導(dǎo)零的數(shù)字(如一月表示為 1)。如果這是用戶定義的數(shù)字格式中的唯一
字符,請(qǐng)使用 %M。
MM 將月份顯示為帶前導(dǎo)零的數(shù)字(例如 01/12/01)。
MMM 將月份顯示為縮寫形式(例如 Jan)。
MMMM 將月份顯示為完整月份名(例如 January)。
gg 顯示時(shí)代/紀(jì)元字符串(例如 A.D.)
h 使用 12 小時(shí)制將小時(shí)顯示為不帶前導(dǎo)零的數(shù)字(例如 1:15:15 PM)。如果這是用戶定義的數(shù)
字格式中的唯一字符,請(qǐng)使用 %h。
hh 使用 12 小時(shí)制將小時(shí)顯示為帶前導(dǎo)零的數(shù)字(例如 01:15:15 PM)。
H 使用 24 小時(shí)制將小時(shí)顯示為不帶前導(dǎo)零的數(shù)字(例如 1:15:15)。如果這是用戶定義的數(shù)字
格式中的唯一字符,請(qǐng)使用 %H。
HH 使用 24 小時(shí)制將小時(shí)顯示為帶前導(dǎo)零的數(shù)字(例如 01:15:15)。
m 將分鐘顯示為不帶前導(dǎo)零的數(shù)字(例如 12:1:15)。如果這是用戶定義的數(shù)字格式中的唯一字
符,請(qǐng)使用 %m。
mm 將分鐘顯示為帶前導(dǎo)零的數(shù)字(例如 12:01:15)。
s 將秒顯示為不帶前導(dǎo)零的數(shù)字(例如 12:15:5)。如果這是用戶定義的數(shù)字格式中的唯一字符
,請(qǐng)使用 %s。
ss 將秒顯示為帶前導(dǎo)零的數(shù)字(例如 12:15:05)。
F 顯示秒的小數(shù)部分。例如,ff 將精確顯示到百分之一秒,而 ffff 將精確顯示到萬分之一秒。
用戶定義格式中最多可使用七個(gè) f 符號(hào)。如果這是用戶定義的數(shù)字格式中的唯一字符,請(qǐng)使用 %f。
T 使用 12 小時(shí)制,并對(duì)中午之前的任一小時(shí)顯示大寫的 A,對(duì)中午到 11:59 P.M 之間的任一小
時(shí)顯示大寫的 P。如果這是用戶定義的數(shù)字格式中的唯一字符,請(qǐng)使用 %t。
tt 使用 12 小時(shí)制,并對(duì)中午之前任一小時(shí)顯示大寫的 AM;對(duì)中午到 11:59 P.M 之間的任一小
時(shí)顯示大寫的 PM。
y 將年份 (0-9) 顯示為不帶前導(dǎo)零的數(shù)字。如果這是用戶定義的數(shù)字格式中的唯一字符,請(qǐng)使用
%y。
yy 以帶前導(dǎo)零的兩位數(shù)字格式顯示年份(如果適用)。
yyy 以四位數(shù)字格式顯示年份。
yyyy 以四位數(shù)字格式顯示年份。
z 顯示不帶前導(dǎo)零的時(shí)區(qū)偏移量(如 -8)。如果這是用戶定義的數(shù)字格式中的唯一字符,請(qǐng)使用
%z。
zz 顯示帶前導(dǎo)零的時(shí)區(qū)偏移量(例如 -08)
zzz 顯示完整的時(shí)區(qū)偏移量(例如 -08:00)
同樣對(duì)時(shí)間也可以進(jìn)行這樣的格式化..你可以使用自定義格式來設(shè)置你想要的格式輸出.
你可以使用上表中各字符進(jìn)行任意的組合不管前后次序多少如你寫入yyyy-yyyy也是可以的.
注意的是:進(jìn)行格式化的一定要是日期DateTime格式.在SQL中的類型也一樣.否則格式無效或出錯(cuò).特別是在DataGrid常{0:IFromat}的格式中會(huì)用到
2)日期的輸入
我們?cè)谵k理入日期格式式常用DateTime.Pares()
但是這個(gè)形式的轉(zhuǎn)換是相當(dāng)有限的,有些C#是會(huì)不懂你寫入的日期格式的如20031231大家都明白是2003-
12-31號(hào)可以C#不認(rèn)識(shí)他.我們可以這樣子進(jìn)行如下
//設(shè)置語言國家
System.IFormatProvider format=new System.Globalization.CultureInfo("zh-CN",true);
//指定轉(zhuǎn)換格式
Response.Write(DateTime.ParseExact(this.TextBox1.Text,"yyyyMMdd",format));
這樣他就能看出20031231號(hào)的日期格式了
不過可惜他只能夠?qū)yyyMMdd形式進(jìn)行不能對(duì)其它格式進(jìn)行轉(zhuǎn)換是不是美中不足?
不過.NET提供了另一種重載版本.
public static DateTime ParseExact(string, string[], IFormatProvider, DateTimeStyles);
可對(duì)指定的幾種日期格式進(jìn)行轉(zhuǎn)換.