自訂日期和時間格式字串簡述
有標準日期格式規範當然也有自訂日期格式規範,
也是一樣,一些易理解看圖就懂的格式規範就不說明了,SO,自己看圖說故事。
一、使用單一自訂格式規範 "%"
如果格式字串由單一字元所組成的自訂格式規範,則應該在格式規範前面加上百分比 (%) 符號,
以避免與標準格式規範產生混淆。之後的範例將會應用到。
二、月份天數,從 1 到 31 "d"
using System;
public class Example
{
public static void Main()
{
DateTime a = new DateTime(2016, 11, 09, 13, 14, 15);
Console.WriteLine(a.ToString("%d"));
Console.ReadKey();
}
}
執行結果
說明:
這裡就已經說明了為何在"d"字串前面還要再加上"%",如果不加的話,
將會被視為「標準格式規範」而非「自訂格式規範」。
using System;
public class Example
{
public static void Main()
{
DateTime a = new DateTime(2016, 11, 09, 13, 14, 15);
Console.WriteLine(a.ToString("d"));
Console.ReadKey();
}
}
三、月份天數,從 01 到 31 "dd"
using System;
public class Example
{
public static void Main()
{
DateTime a = new DateTime(2016, 11, 09, 13, 14, 15);
Console.WriteLine(a.ToString("dd"));
Console.ReadKey();
}
}
執行結果
說明:
此自訂格式規範由兩個以上字元所組成的話,則字串前面是不需要再加上 "%" 的。
四、星期幾的縮寫名稱 "ddd"
執行結果
說明:
依照先前的範例修改就行,冗長的程式碼非必要就不列出了。
五、星期幾的完整名稱 "dddd"
執行結果
六、日期和時間值中的十分之一秒 "f"
using System;
public class Example
{
public static void Main()
{
DateTime a = new DateTime(2016, 11, 09, 13, 14, 15, 123);
Console.WriteLine(a.ToString("%f"));
Console.ReadKey();
}
}
執行結果
說明:
此自訂格式規範只有由一個字元所組成,則字串前面要再加上 "%"。
七、日期和時間值中的百分之一秒 "ff"
執行結果
八、日期和時間值中的千分之一秒 "fff"
執行結果
九、日期和時間值中的萬分之一秒 "ffff"
說明:
雖然時間值的秒數部分可以顯示到萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在 Windows NT 3.5 (含) 以上版本和 Windows Vista 作業系統中,時鐘的解析度大約為 10-15 毫秒。
十、日期和時間值中的十萬分之一秒 "fffff"
說明:
雖然時間值的秒數部分可以顯示到萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在 Windows NT 3.5 (含) 以上版本和 Windows Vista 作業系統中,時鐘的解析度大約為 10-15 毫秒。
十一、日期和時間值中的百萬分之一秒 "ffffff"
說明:
雖然時間值的秒數部分可以顯示到萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在 Windows NT 3.5 (含) 以上版本和 Windows Vista 作業系統中,時鐘的解析度大約為 10-15 毫秒。
十二、日期和時間值中的千萬分之一秒 "fffffff"
說明:
雖然時間值的秒數部分可以顯示到萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在 Windows NT 3.5 (含) 以上版本和 Windows Vista 作業系統中,時鐘的解析度大約為 10-15 毫秒。
十三、如果不是零,則為日期和時間值中的十分之一秒 "F"
using System;
public class Example
{
public static void Main()
{
DateTime a = new DateTime(2016, 11, 09, 13, 14, 15, 023);
Console.WriteLine(a.ToString("%F"));
Console.ReadKey();
}
}
執行結果
十四、如果不是零,則為日期和時間值中的百分之一秒 "FF"
執行結果
十五、如果不是零,則為日期和時間值中的千分之一秒 "FFF"
執行結果
十六、如果不是零,則為日期和時間值中的萬分之一秒 "FFFF"
說明:
雖然時間值的秒數部分可以顯示到萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在 Windows NT 3.5 (含) 以上版本和 Windows Vista 作業系統中,時鐘的解析度大約為 10-15 毫秒。
十七、如果不是零,則為日期和時間值中的十萬分之一秒 "FFFFF"
說明:
雖然時間值的秒數部分可以顯示到萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在 Windows NT 3.5 (含) 以上版本和 Windows Vista 作業系統中,時鐘的解析度大約為 10-15 毫秒。
十八、如果不是零,則為日期和時間值中的百萬分之一秒 "FFFFFF"
說明:
雖然時間值的秒數部分可以顯示到萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在 Windows NT 3.5 (含) 以上版本和 Windows Vista 作業系統中,時鐘的解析度大約為 10-15 毫秒。
十九、如果不是零,則為日期和時間值中的千萬分之一秒 "FFFFFFF"
說明:
雖然時間值的秒數部分可以顯示到萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在 Windows NT 3.5 (含) 以上版本和 Windows Vista 作業系統中,時鐘的解析度大約為 10-15 毫秒。
二十、紀元 "g"、"gg"
執行結果
二一、採用 12 小時制的小時,從 1 到 12 "h"
using System;
public class Example
{
public static void Main()
{
DateTime a = new DateTime(2016, 11, 09, 13, 14, 15, 023);
Console.WriteLine(a.ToString("%h"));
Console.ReadKey();
}
}
執行結果
二二、採用 12 小時制的小時,從 01 到 12 "hh"
執行結果
二三、採用 24 小時制的小時,從 0 到 23 "H"
執行結果
二四、採用 24 小時制的小時,從 00 到 23 "HH"
執行結果
二五、時區資訊 "K"
using System;
public class Example
{
public static void Main()
{
DateTime a = new DateTime(2016, 11, 09, 13, 14, 15, 023, DateTimeKind.Local);
Console.WriteLine(a.ToString("%K"));
Console.ReadKey();
}
}
執行結果
說明:
"K" 自訂格式規範表示日期和時間值的時區資訊,可藉由指定DateTimeKind來做變化,
DateTimeKind的種類有Local、Unspecified、Utc。
二六、分鐘,從 0 到 59 "m"
using System;
public class Example
{
public static void Main()
{
DateTime a = new DateTime(2016, 11, 09, 13, 14, 15, 023);
Console.WriteLine(a.ToString("%m"));
Console.ReadKey();
}
}
執行結果
二七、分鐘,從 00 到 59 "mm"
執行結果
二八、月份,從 1 到 12 "M"
執行結果
二九、月份,從 1 到 12 "MM"
執行結果
三十、月份的縮寫名稱 "MMM"
執行結果
三一、月份的完整名稱 "MMMM"
執行結果
三二、秒數,從 0 到 59 "s"
執行結果
三三、秒數,從 00 到 59 "ss"
執行結果
三四、AM/PM 指示項的第一個字元 "t"
執行結果
三五、AM/PM 指示項 "tt"
執行結果
三六、年份,從 0 到 99 "y"
執行結果
三七、年份,從 00 到 99 "yy"
執行結果
三八、年份,至少三位數 "yyy"
執行結果
三九、以四位數表示的年份 "yyyy"
執行結果
四十、以五位數表示的年份 "yyyyy"
執行結果
四一、與 UTC 相差的時數,不加上前置零 "z"
執行結果
四二、與 UTC 相差的時數,單一位數值會加上前置零 "zz"
執行結果
四三、與 UTC 相差的時數和分鐘數 "zzz"
執行結果
四四、時間分隔符號 ":"
using System;
public class Example
{
public static void Main()
{
DateTime a = new DateTime(2016, 11, 09, 13, 14, 15, 023);
Console.WriteLine(a.ToString("%:"));
Console.ReadKey();
}
}
執行結果
說明:
":" 自訂格式規範表示時間分隔符號,用於區別時、分、秒。
但你也可以把它當作只是要印出「:」冒號而已。
四五、日期分隔符號 正斜線"/"
執行結果
說明:
"/" 自訂格式規範表示日期分隔符號,用於區別年、月、日。
但你也可以把它當作只是要印出「/」正斜線而已。
參考資料: