我正在做Richard Broida的F#课程。在一个讲座中,我应该解析一个CSV文档。除解析日期时间外,一切正常。我的本地文化设置是斯洛伐克语(sk-SK),我正在尝试解析以下日期时间字符串:
9/14/2016 19:31
我已经阅读了CSV文件,发现几个月,几天和几个小时都可以有一个或两个数字。年份总是有 4 数字,分钟总是有 2 数字。因此,日期时间10/7/2016 9:01
也是有效的。
我创建了一个适配器功能:
let dateTimeParseAdapter format provider date =
DateTime.ParseExact(date, format, provider)
然后调用
dateTimeParseAdapter "M/d/yyyy h:mm" CultureInfo.InvariantCulture "9/14/2016 19:31"
但是我收到了一条异常消息
System.FormatException: String was not recognized as a valid DateTime.
我尝试将格式字符串调整为与单个日期中的位数完全匹配。但是,即使以下代码也会导致相同的错误消息。
dateTimeParseAdapter "M/dd/yyyy hh:mm" CultureInfo.InvariantCulture "9/14/2016 19:31"
为什么我收到异常消息?我应该更改CultureInfo
设置吗?或者是否有预定义的日期时间格式来解析我的日期时间?
答案 0 :(得分:7)
使用 24 小时格式时,您应使用H
(HH
)而非h
hh
(适用于 12 小时格式)模式:
format = @"M/d/yyyy H:mm";
答案 1 :(得分:4)
因为您使用24小时的价值,所以必须在几小时内投入资金。变化
"M/dd/yyyy hh:mm"
到
"M/dd/yyyy HH:mm"