我想以这种格式显示日期:
例如:
但是我遇到以下代码的问题
class Program
{
static void Main(string[] args)
{
DateTime dt = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 0, 0, 0);
string displayedDate = dt.ToString("MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
Console.WriteLine(displayedDate);
Console.Read();
}
}
显示:
01/04/2011 12 :00:00 AM
而不是
01/04/2011 00 :00:00 AM
任何人都知道为什么?
谢谢!
答案 0 :(得分:11)
因为您指定了12小时时钟格式而不是24小时格式。
DateTime.ToString
方法的documentation提供了格式说明符的完整表格及其含义。小时的选择如下:
"h" The hour, using a 12-hour clock from 1 to 12. "hh" The hour, using a 12-hour clock from 01 to 12. "H" The hour, using a 24-hour clock from 0 to 23. "HH" The hour, using a 24-hour clock from 00 to 23.
因此,您需要使用hh
,而不是HH
自定义格式说明符。改变这一行:
string displayedDate = dt.ToString("MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
到此:
string displayedDate = dt.ToString("MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture);
答案 1 :(得分:1)
您已指定需要12小时格式而不是24小时格式,这就是原因。您应该使用HH
24小时。请参阅reference。这应该适合你:
string displayedDate = dt.ToString("MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture);
答案 2 :(得分:0)
您需要在ToString()调用中将'hh'更改为'H'。