Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 日期与日期时间的格式问题_C#_.net_Datetime_Datetime Format - Fatal编程技术网

C# 日期与日期时间的格式问题

C# 日期与日期时间的格式问题,c#,.net,datetime,datetime-format,C#,.net,Datetime,Datetime Format,我想用以下格式显示日期: 年月日HH:MM:ss tt 例如: 2011年4月1日03:34:03下午 但是我对下面的代码有一个问题 class Program { static void Main(string[] args) { DateTime dt = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 0, 0, 0); strin

我想用以下格式显示日期:

  • 年月日HH:MM:ss tt
例如:

  • 2011年4月1日03:34:03下午
但是我对下面的代码有一个问题

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();
    }
}
显示:

2011年4月1日12:00:00

而不是

2011年4月1日00:00:00

有人知道为什么吗


谢谢大家!

您需要在ToString()调用中将“hh”更改为“H”。

因为您指定了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. 为此:

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

您已经指定要12小时格式而不是24小时格式,这就是原因。您应该使用
HH
24小时。请看地图。这应该适合您:

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

在AM/PM系统中,午夜被表示为12:00:00 AM。好的,这里是混淆。我认为午夜被表示为00:00:00 AM而不是12:00:00 AM:-/这是一个合理的混淆。在美国,12小时制更受欢迎,上午12:00是午夜。据我所知,在大多数其他地方,24小时格式是首选的,因为它没有歧义。在该系统下,午夜实际上是0:00(不需要AM/PM说明符)。无论如何,很高兴看到你的问题得到解决!是的,有点累了,读到需要换个方向。不知怎的,这转换成了“h”。我知道我选择了12h格式。在这种格式中,我们将“午夜”写为上午12时00分?
string displayedDate = dt.ToString("MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture);