C# 如何将DateTime中的小时格式化为返回0而不是12?

C# 如何将DateTime中的小时格式化为返回0而不是12?,c#,.net,datetime,formatting,C#,.net,Datetime,Formatting,默认情况下,DateTime格式字符串中的小时将0转换为12。 例如,如果你有 DateTime dt = new DateTime(1999, 1, 1, 0, 0, 0); string s = dt.ToString("h:mm:ss"); s的值将为“12:0:0”,而不是“0:0:0”。有办法改成“0:00:00”吗 显然这不是你想要的。我读你文章的方式是,你想要一个12小时的时钟,将“12:00”重新映射到“0:00”(一些国际时钟会这样做),这就产生了。此行为没有格式字符串,因此

默认情况下,DateTime格式字符串中的小时将0转换为12。 例如,如果你有

DateTime dt = new DateTime(1999, 1, 1, 0, 0, 0);
string s = dt.ToString("h:mm:ss");
s的值将为“12:0:0”,而不是“0:0:0”。有办法改成“0:00:00”吗

显然这不是你想要的。我读你文章的方式是,你想要一个12小时的时钟,将“12:00”重新映射到“0:00”(一些国际时钟会这样做),这就产生了。此行为没有格式字符串,因此您必须自己创建字符串


您还可以阅读有关
DateTime
格式字符串的更多信息。

如果您已经接近,请尝试使用以下内容:

string s = dt.ToString("H:mm:ss");
试一试


这里是

而不是“h:mm:ss”,使用“h:mm:ss”

您需要在ToString方法中使用大写字母h而不是小写字母h

DateTime dt=新的日期时间(1999,1,1,0,0,0);
字符串s=dt.ToString(“H:mm:ss”)

嗯,从外观上看,我以为OP想要一个12小时的时钟。“默认情况下,小时…将0转换为12…是否有办法获得”0:00:00“相反?这是目前唯一正确的答案,所以很明显这就是为什么它被下载的原因。”。问题的措词方式、已接受的答案以及当前可见的其他答案确实将0保留为0,但它们会产生副作用,改变问题未要求的其他值。他们从下午1点改到13点。他们晚上11点从11点改为23点。他们将中午12点保留为12点,即使问题的措辞要求0(返回0而不是12)。在这里,我们开始,唯一正确的答案张贴在这个线程中,它被否决了。@Windows程序员-谢谢你;我很高兴我不是唯一一个从表面上看这篇文章的人在问题中,OP要求12小时的时钟在哪里?我被你的评论(和答案)弄糊涂了,因为OP的DateTime对象被初始化为午夜,OP要求一种方法来防止默认行为“将0转换为12”。@Jeff Meatball Yang:OP不是“要求12小时时钟”,而是通过指定“h:mm:ss”来使用时钟。OP询问如何覆盖将0转换为12的默认行为。从技术上讲,你的答案和其他答案也有这样的作用,所以我没有投反对票,但它们也有一些副作用,这在OP中是没有要求的。是的,我假设了两件事:OP知道格式字符串“H”,但更重要的是,如果OP想要24小时时钟,他们会指定的。它的措辞不是“如何得到24小时的时钟”,而是“如何得到12到0”对于一个给定的前男友。
string s = dt.ToString("H:mm:ss");
string s = dt.ToString("H:mm:ss");