我知道我们可以执行以下操作来显示AM PM的时间。c#时间显示AM PM
String.Format("{0:t}", dt); // "4:05 PM"
如果我想为AM显示A和为PM显示P,该怎么办?有没有格式?
我知道我们可以执行以下操作来显示AM PM的时间。c#时间显示AM PM
String.Format("{0:t}", dt); // "4:05 PM"
如果我想为AM显示A和为PM显示P,该怎么办?有没有格式?
另一个解决方案是使用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
使用 “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更多细节)
我会回滚编辑...虽然它复制了链接中的示例,但您提供了答案的要点而不让我去查看它。 ;) – IAbstract 2011-12-29 22:53:02
我更改了示例代码:) – 2011-12-29 22:57:50
你试过
String.Format("{0:h:mm t}", DateTime.Now)
使用格式,然后使用没有最后一个字母的子字符串? – jclozano 2011-12-29 22:46:58
在上面的示例代码中,“{0:t}”实际显示了所需的结果。 “{0:tt}”会显示“AM”或“PM”。 – MrUpsideDown 2014-08-04 04:32:32