有没有办法使用DateTime.ToString()方法将时间部分的meridiem显示为“A.M.”而不是“AM”?我尝试使用面具“t.t.”但这只是输出“A.A。”
答案 0 :(得分:14)
您可以重新定义AMDesignator
的{{1}}和PMDesignator
属性,然后将文化指定为格式提供者:
CultureInfo.DateTimeFormat
答案 1 :(得分:12)
使用"t.\\M"
:
DateTime time = DateTime.Now;
string s = time.ToString("yyyy.MM.dd hh:mm:ss t.\\M.");
Console.WriteLine(s);
输出:
2010.02.02 09:26:14 A.M.
说明:t
给出了AM / PM指示符的第一个字符(可以在DateTimeFormatInfo.AMDesignator
和DateTimeFormatInfo.PMDesignator
中检索本地化指示符)。 \\M
转义M
,以便DateTime.ToString
不会将其解释为格式字符串的一部分,并打印月份的数值。
请注意,执行此操作后,您明确对文化不敏感。例如,在日本,AM / PM指示符的第二个字符不同,而不是第一个字符。