![](/img/trans.png)
[英]The format string for DateTime.ParseExact - what hour format works with “tt”?
[英]DateTime.ParseExact using just hour format not working
在我的网络核心项目中,我必须将字符串解析为DateTime。 该格式是动态的,在编译时未知。 代码是:
var datetime = DateTime.ParseExact(data, format, CultureInfo.InvariantCulture, DateTimeStyles.None);
但我有问题时,格式只是个小时,即将到来的数字从0到23。根据这个文章来指定小时格式你有4个选项:H,HH,H和HH,而是试图解析时“0”
使用h我得到:
System.FormatException:输入字符串的格式不正确。
使用hh我得到:
System.FormatException:字符串未被识别为有效的DateTime。
使用H我得到:
System.FormatException:输入字符串的格式不正确。
使用HH我得到:
System.FormatException:字符串未被识别为有效的DateTime。
在这篇文章中指出
如果format是不包含日期或时间分隔符的自定义格式模式(例如“ yyyyMMddHHmm”),请对提供者参数和每个自定义格式说明符的最大格式使用不变的区域性。 例如,如果要在格式模式中指定小时,请指定较宽的形式“ HH”而不是较窄的形式“ H”。
但这是我一直在做的并且没有工作。 我无法猜测如何实现仅将一个小时解析为DateTime的字符串。 有任何想法吗??
编辑
执行以下任何行时都会引发异常:
DateTime.ParseExact("0", "HH", CultureInfo.InvariantCulture, DateTimeStyles.None);
DateTime.ParseExact("0", "H", CultureInfo.InvariantCulture, DateTimeStyles.None);
我无法使用TimeSpan.Parse,因为我有读取xlsx文件的通用解决方案。 如何读取文件存储在数据库中。 有时,DateTime全部放在一列中,格式为ddMMyyHHmmss
而其他日期时间则在一列中,格式为ddMMyy
,小时在另一列中,其ddMMyy
为0到23(分钟和秒应初始化为0)。 之后,日期和小时将合并以返回整个DateTime。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.