c# 中 "M" 自定义格式说明符的奇怪行为
Strange behaviour of the "M" custom format specifier in c#
此代码在每个 Console.WriteLine 语句下方的注释中生成输出。
谁能解释一下这种行为?
DateTime date1 = new DateTime(2008, 8, 18);
Console.WriteLine(date1.ToString("M"));
// Displays August 18
Console.WriteLine(date1.ToString("M "));
// Displays 8
Console.WriteLine(date1.ToString("(M)"));
// Displays (8)
Console.WriteLine(date1.ToString("(M) MMM, MMMM"));
// Displays (8) Aug, August
Can anyone explain this kind of behaviour?
是的,在 standard date and time format strings and custom date and time format strings 中有完整的记录。
让我们逐一浏览:
date1.ToString("M")
:使用单个字符 'M',因此它是“month/day 模式”的标准格式字符串
date1.ToString("M ")
:使用两个字符的格式字符串,因此它是使用 M
的自定义格式字符串,它是月份编号,1-12 没有填充。
date1.ToString("(M)")
:同样,使用 M
的自定义格式字符串
date1.ToString("(M) MMM, MMMM")
:使用 M
的自定义格式字符串,以及 MMM
(“月份的缩写名称”)和 MMMM
(“全名月份”)
前两者之间的重要区别在于格式字符串 只有 如果它是单个字符,则被视为标准格式。否则,它被认为是自定义格式。如果你想单独使用 single-character 自定义格式说明符,你可以使用 %
作为前导字符 - 所以 date1.ToString("%M")
会 return “8”而不是“August 18".
C# 中的日期和时间由 C# 中的 DateTime 结构处理,该结构提供属性和方法以将日期格式化为不同的日期时间格式。
M-> Month number(eg.3)
MM-> Month number with leading zero(eg.04)
MMM-> Abbreviated Month Name (e.g. Dec)
MMMM-> Full month name (e.g. December)
https://www.c-sharpcorner.com/blogs/date-and-time-format-in-c-sharp-programming1
此代码在每个 Console.WriteLine 语句下方的注释中生成输出。
谁能解释一下这种行为?
DateTime date1 = new DateTime(2008, 8, 18);
Console.WriteLine(date1.ToString("M"));
// Displays August 18
Console.WriteLine(date1.ToString("M "));
// Displays 8
Console.WriteLine(date1.ToString("(M)"));
// Displays (8)
Console.WriteLine(date1.ToString("(M) MMM, MMMM"));
// Displays (8) Aug, August
Can anyone explain this kind of behaviour?
是的,在 standard date and time format strings and custom date and time format strings 中有完整的记录。
让我们逐一浏览:
date1.ToString("M")
:使用单个字符 'M',因此它是“month/day 模式”的标准格式字符串date1.ToString("M ")
:使用两个字符的格式字符串,因此它是使用M
的自定义格式字符串,它是月份编号,1-12 没有填充。date1.ToString("(M)")
:同样,使用M
的自定义格式字符串
date1.ToString("(M) MMM, MMMM")
:使用M
的自定义格式字符串,以及MMM
(“月份的缩写名称”)和MMMM
(“全名月份”)
前两者之间的重要区别在于格式字符串 只有 如果它是单个字符,则被视为标准格式。否则,它被认为是自定义格式。如果你想单独使用 single-character 自定义格式说明符,你可以使用 %
作为前导字符 - 所以 date1.ToString("%M")
会 return “8”而不是“August 18".
C# 中的日期和时间由 C# 中的 DateTime 结构处理,该结构提供属性和方法以将日期格式化为不同的日期时间格式。
M-> Month number(eg.3)
MM-> Month number with leading zero(eg.04)
MMM-> Abbreviated Month Name (e.g. Dec)
MMMM-> Full month name (e.g. December)
https://www.c-sharpcorner.com/blogs/date-and-time-format-in-c-sharp-programming1