自訂日期和時間格式字串簡述

 

有標準日期格式規範當然也有自訂日期格式規範,

也是一樣,一些易理解看圖就懂的格式規範就不說明了,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();
    }
}

執行結果

說明:

":" 自訂格式規範表示時間分隔符號,用於區別時、分、秒。

但你也可以把它當作只是要印出「:」冒號而已。

 

四五、日期分隔符號 正斜線"/"

執行結果

說明:

"/" 自訂格式規範表示日期分隔符號,用於區別年、月、日。

但你也可以把它當作只是要印出「/」正斜線而已。

 

參考資料:

自訂日期和時間格式字串