簡體   English   中英

在.NET中發出字符串格式為“M”的DateTime.ToString

[英]Issue DateTime.ToString with string format “M” in .NET

我有DateTime的字符串格式的問題。 我認為這是MS中的錯誤。 你能解釋一下,有什么不對嗎?

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(DateTime.Now.ToString("M"));//return 07 July   <---- WRONG, SEE MSDN
        Console.WriteLine(DateTime.Now.ToString(".M"));//return .7   <---- GOOD
        Console.ReadKey();
    }
}

MSDN

來自"M"自定義格式說明符

如果使用“M”格式說明符而沒有其他自定義格式說明符 ,則將其解釋為"M"標准日期和時間格式說明符 有關使用單個格式說明符的詳細信息,請參閱本主題后面的使用單個自定義格式說明符。

使用單個自定義格式說明符

自定義日期和時間格式字符串由兩個或多個字符組成。 日期和時間格式化方法將任何單字符字符串解釋為標准日期和時間格式字符串。 如果他們不將該字符識別為有效的格式說明符, FormatException拋出FormatException 例如,僅由說明符“h”組成的格式字符串被解釋為標准日期和時間格式字符串。 但是,在這種特殊情況下,拋出異常,因為沒有“h”標准日期和時間格式說明符。

使用任何自定義日期和時間格式說明符作為格式字符串中的唯一說明符(即使用“d”,“f”,“F”,“g”,“h”,“H”, “K”,“m”, “M” ,“s”,“t”,“y”,“z”,“:”或“/”自定義格式說明符) 包括在之前或之后的空格說明符,或在單個自定義日期和時間說明符之前包含百分比(“%”)格式說明符

這就是為什么你可以使用其中之一;

Console.WriteLine(DateTime.Now.ToString(" M")); // 7
Console.WriteLine(DateTime.Now.ToString("M ")); //7
Console.WriteLine(DateTime.Now.ToString("%M")); //7

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM