这有点奇怪.如果我想要精确的话,解析具有有效时间跨度的文本字段会失败!
const string tmp = "17:23:24";
//works
var t1 = TimeSpan.Parse(tmp);
//fails
var t2 = TimeSpan.ParseExact(tmp, "hh:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
第二个解析失败,异常"输入字符串格式不正确".来自DateTime.
我的应用程序正在从WMI接收一些日期信息.这是字符串形式,格式如下:
yyyymmddHHMMSS.mmmmmmsUUU
Run Code Online (Sandbox Code Playgroud)
有关此格式的更多详细信息,请参见此处.我对在此期间之前解析所有内容感兴趣.我有以下代码:
string testDate = "20010701212212"; // July, 01, 2001 21:22:12, in the format specified above
string format = "yyyyMMddHHmmSS";
CultureInfo culture = CultureInfo.InvariantCulture;
DateTime newDate = DateTime.ParseExact(date, format, culture);
Run Code Online (Sandbox Code Playgroud)
这总是在调用ParseExact()时失败,但有一个例外,指出"String未被识别为有效的DateTime".我在这做错了什么?