默认情况下,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”呢?
答案 0 :(得分:7)
答案 1 :(得分:6)
你很接近,试着改用:
string s = dt.ToString("H:mm:ss");
答案 2 :(得分:3)
string s = (dt.Hour >= 12 ? dt.Hour - 12 : dt.Hour).ToString() +
dt.ToString(":mm:ss");
显然这不是你想要的。我阅读你的帖子的方式,你想要一个 12小时时钟重新映射“12:00”到“0:00”(一些国际时钟这样做),这就产生了。此行为没有格式字符串,因此您必须自己创建字符串。
您还可以阅读有关DateTime
格式字符串here的更多信息。
答案 3 :(得分:0)
而不是“h:mm:ss”,请使用“H:mm:ss”
答案 4 :(得分:0)
你需要在ToString方法中使用大写字母H而不是小写字母。
即
DateTime dt = new DateTime(1999,1,1,0,0,0); string s = dt.ToString(“H:mm:ss”);