一:在C#中DateTime是一個包含日期,時間的類型,此類型通過Tostring()轉化為字符串時,可根據傳入的Tostring()的參數轉化為多種字符串格式。
二:分類
1.DateTime調用Tostring()傳入的參數可分為制式和自定義兩種:
(1)制式:系統自帶的,傳入特定的單個字符就可以轉換為系統已設定好的格式。
(2)自定義:自由組合日期時間代碼(y,M,d,h,m,s,f)來展示豐富的日期格式。
2.制式類型格式來源
在Windows系統中的區域和語言(位置:控制面板→區域和語言)選項中可設置日期和時間的格式。
可設置的類型有:短日期,長日期,短時間,長時間等。調用ToString()進行轉化時,許多轉換模式都是通過上面4個分類進行組合的。下面是單個字符對照打印出來的。
string dtNow = DateTime.Now.ToString(); DateTime dateTime = DateTime.Now; Console.WriteLine("< >不帶參數的日期格式:\n\t{0}\n", dtNow); Console.WriteLine("<d>短日期格式:\n\t{0}\n", dateTime.ToString("d")); Console.WriteLine("<D>長日期格式:\n\t{0}\n", dateTime.ToString("D")); Console.WriteLine("<f>長日期短時間格式:\n\t{0}\n", dateTime.ToString("f")); Console.WriteLine("<F>長日期長時間格式:\n\t{0}\n", dateTime.ToString("F")); Console.WriteLine("<g>短日期短時間格式:\n\t{0}\n", dateTime.ToString("g")); Console.WriteLine("<G>短日期長時間格式:\n\t{0}\n", dateTime.ToString("G")); Console.WriteLine("<m>月日格式:\n\t{0}\n", dateTime.ToString("m")); Console.WriteLine("<M>月日格式:\n\t{0}\n", dateTime.ToString("M")); Console.WriteLine("<r>RFC1123標准格式:\n\t{0}\n", dateTime.ToString("r")); Console.WriteLine("<R>RFC日期格式:\n\t{0}\n", dateTime.ToString("R")); Console.WriteLine("<t>短時間格式:\n\t{0}\n", dateTime.ToString("t")); Console.WriteLine("<T>長時間格式:\n\t{0}\n", dateTime.ToString("T")); Console.WriteLine("<s>日期格式:\n\t{0}\n", dateTime.ToString("")); Console.WriteLine("<u>通用日期格式:\n\t{0}\n", dateTime.ToString("u")); Console.WriteLine("<U>本初子午線長日期長時間格式:\n\t{0}\n", dateTime.ToString("U")); Console.WriteLine("<y>年月格式:\n\t{0}\n", dateTime.ToString("y")); Console.WriteLine("<Y>年月格式:\n\t{0}\n", dateTime.ToString("Y")); Console.ReadKey();
運行結果為:
下面是自定義格式類型:
//自定義格式類型: //字符符合:y(年),M(月),d(日),h(時),m(分),s(秒),f(毫秒),可以看出只有月是大寫的 M ,其他都是小寫。 //yy 年份后兩位 //yyyy 4位年份 //MM 兩位月份 //mm 分鍾數 //dd 兩位日數 //ddd 周幾 //dddd 星期幾 //hh 12小時的制的小時數 //HH 24小時的小時數 //ss 兩位秒數 //ff 毫秒前兩位 //fff 毫秒前三位 //ffff 毫秒前四位 // //例: DateTime dt = DateTime.Now; Console.WriteLine("<無參數格式>\n{0}", dt.ToString()); Console.WriteLine("<yy/MM/dd hh:mm:ss ff>\n{0}", dt.ToString("yy/MM/dd hh:mm:ss ff")); Console.WriteLine("<yyyy-MM-dd hh:mm:ss fff>\n{0}", dt.ToString("yyyy-MM-dd hh:mm:ss fff")); Console.WriteLine("<yy年MM月dd日 hh:mm:ss ffff>\n{0}", dt.ToString("yy年MM月dd日 hh:mm:ss ffff")); Console.WriteLine("<yyyy年MM月dd日 dddd 周 ddd hh:mm:ss ff>\n{0}", dt.ToString("yyyy年MM月dd日 dddd 周 ddd hh:mm:ss ff")); Console.ReadKey();
運行結果為: