日期时间格式为9/14/2016 19:31

Sto*_*orm 4 f# datetime .net-core

我正在做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)
Run Code Online (Sandbox Code Playgroud)

然后打电话

dateTimeParseAdapter "M/d/yyyy h:mm" CultureInfo.InvariantCulture "9/14/2016 19:31"
Run Code Online (Sandbox Code Playgroud)

但我收到一条例外消息说

System.FormatException: String was not recognized as a valid DateTime.
Run Code Online (Sandbox Code Playgroud)

我尝试将格式字符串调整为与单个日期中的位数完全匹配.但是,即使以下代码导致相同的错误消息.

dateTimeParseAdapter "M/dd/yyyy hh:mm" CultureInfo.InvariantCulture "9/14/2016 19:31"
Run Code Online (Sandbox Code Playgroud)

为什么我收到异常消息?我应该更改CultureInfo设置吗?或者是否有预定义的日期时间格式来解析我的日期时间?

Dmi*_*nko 7

使用24小时格式时,您应该使用H(HH)not h hh(12小时格式)模式:

 format = @"M/d/yyyy H:mm";
Run Code Online (Sandbox Code Playgroud)