使用DateTime格式化问题日期

Flo*_*ian 3 .net c# datetime datetime-format

我想用这种格式显示日期:

  • MM/dd/yyyy HH:mm:ss tt

例如 :

  • 01/04/2011 03:34:03 PM

但我有以下代码的问题

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

显示:

01/04/2011 12:00:上午12点

代替

01/04/2011 00:00:00

谁知道为什么?

谢谢 !

Cod*_*ray 11

因为您指定了12小时时钟格式而不是24小时格式.

文档DateTime.ToString方法给出格式说明全表和他们的意思.小时的选择如下:

"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);
Run Code Online (Sandbox Code Playgroud)

对此:

string displayedDate = dt.ToString("MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)