DateTime.ToString()将meridiem显示为“A.M.”或“P.M.”

时间:2010-02-02 14:20:06

标签: .net asp.net datetime

有没有办法使用DateTime.ToString()方法将时间部分的meridiem显示为“A.M.”而不是“AM”?我尝试使用面具“t.t.”但这只是输出“A.A。”

2 个答案:

答案 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.AMDesignatorDateTimeFormatInfo.PMDesignator中检索本地化指示符)。 \\M转义M,以便DateTime.ToString不会将其解释为格式字符串的一部分,并打印月份的数值。

请注意,执行此操作后,您明确对文化不敏感。例如,在日本,AM / PM指示符的第二个字符不同,而不是第一个字符。