C#-字符串未被识别为有效的DateTime

时间:2019-10-31 14:17:31

标签: c# datetime

我收到错误“字符串未被识别为有效的DateTime”。我尝试了多种格式,但仍然会收到错误消息。我想返回“ 10/31/2019”。

string x = DateTime.ParseExact(
    "2019-10-31T09:40:28-04:00", 
    "yyyy-MM-ddTHH:mm:ss-K", 
    DateTimeFormatInfo.InvariantInfo).ToString("d");

5 个答案:

答案 0 :(得分:1)

格式字符串应为yyyy-MM-ddTHH:mm:ssKyyyy-MM-ddTHH:mm:sszzz。请注意,格式字符串中缺少-

答案 1 :(得分:0)

不确定-K在做什么,在那里需要zzz。

“ yyyy-MM-ddTHH:mm:sszzz”应该是您的格式化程序。

答案 2 :(得分:0)

这行得通。

string x = DateTime.ParseExact("2019-10-31T09:40:28-04:00", "yyyy-MM-ddTHH:mm:sszzz", DateTimeFormatInfo.InvariantInfo).ToString("d");

答案 3 :(得分:0)

在您的示例中,时区的格式不是-K。减号是时区(K格式)的一部分,而不是时区和时区之间的分隔符。例如,-04:00的意思是“减去四个小时”。所以应该是:

string x = DateTime.ParseExact(
    "2019-10-31T09:40:28-04:00", 
    "yyyy-MM-ddTHH:mm:ssK", // <-----
    DateTimeFormatInfo.InvariantInfo).ToString("d");

答案 4 :(得分:0)

格式字符串需要进行如下修改

string x = DateTime.ParseExact("2019-10-31T09:40:28-04:00", "yyyy-MM-ddTHH:mm:sszzz", DateTimeFormatInfo.InvariantInfo).ToString("d");