C# 正在将字符串分析为datetime:未将字符串识别为有效的datetime

C# 正在将字符串分析为datetime:未将字符串识别为有效的datetime,c#,datetime,C#,Datetime,我正在尝试解析json。我得到的字符串值实际上是datetime: 2017年11月1日12:00:40上午 当我试图解析它的时候 DateTime.ParseExact("11/1/2017 12:00:40 AM", "MM/DD/YYYY HH:MI:SS AM", CultureInfo.InvariantCulture) 我得到以下错误: 字符串未被识别为有效的日期时间 怎么了?修理 “MM/DD/YYYY HH:MI:SS AM” 与 “MM/d/yyyy hh:MM:ss tt”

我正在尝试解析json。我得到的字符串值实际上是datetime:

2017年11月1日12:00:40上午

当我试图解析它的时候

DateTime.ParseExact("11/1/2017 12:00:40 AM", "MM/DD/YYYY HH:MI:SS AM", CultureInfo.InvariantCulture)
我得到以下错误:

字符串未被识别为有效的日期时间

怎么了?

修理

“MM/DD/YYYY HH:MI:SS AM”

“MM/d/yyyy hh:MM:ss tt”

  • MM
    表示两位数月份或
    M
    表示一位数-不确定您的输入
  • d
    1位数日
  • yyyy
    4位年份
  • hh
    12小时格式
  • mm
    min
  • ss
  • tt
    AM/PM

您的格式字符串与数据不匹配,并且不适合.NET。不同的语言/平台使用不同的格式字符串-始终检查您正在使用的文档。这是您的格式字符串:

"MM/DD/YYYY HH:MI:SS AM"
您需要阅读有关的文档。就你而言:

  • MM
    表示两位数的月份;考虑到你没有两位数的天数,现在还不清楚你是否真的会拥有这些
  • DD
    没有任何意义;您的意思是
    dd
    ,但这两者都不应该匹配,因为您的日期似乎是个位数
  • YYYY
    没有任何意义;你的意思是
    yyyy
  • HH
    为24小时;你的意思是
    hh
  • MI
    是一个位数的月份,后跟
    I
    ;你的意思是几分钟内
    mm
  • SS
    没有任何意义;你的意思是
    ss
  • AM
    应为
    tt
    以匹配AM/PM格式说明符
所以我想你希望你的格式字符串是

"M/d/yyyy hh:mm:ss tt"

是否应该是
11/01
?格式说明符字符区分大小写。@mast3rd3mon是的,应该是,但我无法更改它。此格式来自api