0

我很确定我犯了一些非常愚蠢的错误,但这让我发疯。

我正在尝试执行以下操作:

var dateTime = DateTime.ParseExact("08/24/2016 12:00:00 AM", "MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture);

但我不断收到以下异常:“字符串未被识别为有效的日期时间。”

我试过:“M/dd/yyyy HH:mm:ss tt”“MM'/'dd'/'yyyy HH:mm:ss tt”“M'/'dd'/'yyyy HH:mm:ss tt "

但到目前为止没有任何工作......任何帮助将不胜感激。

4

3 回答 3

7

HH正在寻找 24 小时格式,但您也在传递AM并指定tt- 解析器无法处理。您需要查找基于 12 小时的字符串:

var dateTime = DateTime.ParseExact("08/24/2016 12:00:00 AM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);

使用hh,或删除AM/tt部分。

于 2017-02-20T12:06:37.183 回答
2

使用 hh12 小时格式而不是HH24 小时格式。此信息已经存在AM/PM,无法通过该方法处理两次。

var dateTime = DateTime.ParseExact("08/24/2016 12:00:00 AM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
于 2017-02-20T12:06:02.903 回答
1

您需要使用hh而不是HH因为HH用于 24 小时格式,并且您还指定am pm格式

var dateTime = DateTime.ParseExact("08/24/2016 12:00:00 AM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
于 2017-02-20T12:06:55.953 回答