程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> ASP.NET時間函數及其格式轉換

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

編輯:關於C#
 

在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);
可對指定的幾種日期格式進行轉換.
不過具體的操作我想還是大家自己去試驗一下效果可能會更好一些
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved