我正在尝试使用"yyyyMMddHHmmss"
解析格式DateTime.ParseExact()
的字符串时间戳。问题是我必须允许小时值“24”(即小时可以是0到24,其中小时24表示第二天小时0 (白天+ 1小时= 0)注意:我无法控制输入值。)当然,这会导致异常
我可以设置任何设置/属性而不是手动解析/使用正则表达式吗?如果没有,任何有效的解析思路?
离。
DateTime.ParseExact("20120911240000", "yyyyMMddHHmmss",
System.Globalization.CultureInfo.InvariantCulture);
答案 0 :(得分:3)
如果您想手动执行此操作,可以使用String.Substring()检测小时值“24”,然后使用String.Replace将其设置为“00”,然后解析日期,然后如果这是小时值“24”意味着
,请添加一天答案 1 :(得分:1)
Sam的解决方案很好,但是因为你使用yyyyMMddHHmmss
我会做类似的事情:
bool addDay = false;
DateTime result;
string dtToParse = "20120911240000";
if (dtToParse[8] == '2' && dtToParse[9] == '4')
{
dtToParse = dtToParse.Substring(0, 8) + "00" + dtToParse.Substring(10);
addDay = true;
}
result = DateTime.ParseExact(dtToParse, "yyyyMMddHHmmss", System.Globalization.CultureInfo.InvariantCulture);
if (addDay) { result = result.AddDays(1); }
答案 2 :(得分:0)