我在使用DateTime.ParseExact(..)方法将DateTime值的字符串表示形式解析回DateTime实例时遇到问题。
出于某种原因,使用类似格式化的字符串(或者我可能是盲人),不同的值适用于值A)而不是另一个时间值b)我必须在这里遗漏一些东西..但我不能找到它:
var d1 = "14/10/2013 2:16:18 PM";
var d2 = "27/08/2016 12:20:34 PM";
var dFormat = "dd/MM/yyyy H:mm:ss tt";
DateTime dt = DateTime.MinValue; // out value for .TryParseExact(..)
var tryParseResultD1 = DateTime.TryParseExact(d1, dFormat, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeUniversal, out dt);
var tryParseResultD2 = DateTime.TryParseExact(d2, dFormat, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeUniversal, out dt);
tryParseResultD1.Dump(); // << returns False
tryParseResultD2.Dump(); // << returns True
..由于某种原因试图解析'd1'字符串不起作用但解析'd2'确实如此,我不知道为什么。
有谁知道或看到这里发生了什么?
答案 0 :(得分:3)
您应该更改H
的{{1}}。
h
代表小时,使用12小时制1到12小时。
h
代表小时,使用0到23之间的24小时制。
在你的情况下,你需要一个12小时的时钟,从1到12:
H
答案 1 :(得分:0)
您可以尝试以var dFormat?
格式更改H代表h如果我正确h代表12小时记法而H代表24小时。