c#时间显示AM PM

时间:2011-12-29 22:43:15

标签: c#

我知道我们可以执行以下操作以显示AM PM一段时间。

    String.Format("{0:t}", dt);  // "4:05 PM" 

如果我想为AM显示A,为PM显示P,该怎么办?有格式吗?

4 个答案:

答案 0 :(得分:6)

另一种解决方案是使用 System.Globalization.DateTimeFormatInfo 类,它允许您指定格式化AM / PM的方式:

DateTimeFormatInfo timeFormat = new DateTimeFormatInfo();
timeFormat.ShortTimePattern = CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern;
timeFormat.AMDesignator = "A";
timeFormat.PMDesignator = "P";

// Both of these are the same:
string a = DateTime.Now.ToString("t", timeFormat);
string b = String.Format(timeFormat, "{0:t}", DateTime.Now);

你可以用它做完全自定义的东西:

timeFormat.AMDesignator = "cookies";
timeFormat.PMDesignator = "bagels";

下午4:05的输出示例:

4:05 bagels

答案 1 :(得分:3)

你试过吗

String.Format("{0:h:mm t}", DateTime.Now)

答案 2 :(得分:2)

使用“t”:

Console.Out.WriteLine("date1 = {0:hh:mm:ss.F t}", DateTime.Now);
// date1 = 12:49:35.4 A

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx#tSpecifier

的更多细节

答案 3 :(得分:-1)

不确定,但你可以使用吗? String.Format()。IndexOf(“AM”)> 0? “A”:“P”