C# 将字符串日期转换为特定日期时间格式

C# 将字符串日期转换为特定日期时间格式,c#,asp.net,string,datetime,C#,Asp.net,String,Datetime,我有一个字符串形式的日期时间格式,如下所示: Additional information: String was not recognized as a valid DateTime. 开始日期: 2018/06/30 23:00 截止日期: 2018/07/01 19:32 现在我想把这个字符串转换成如下格式: 2017-02-11T19:58:18.918Z var properStart = DateTimeOffset.ParseExact(startdate, "yyy

我有一个字符串形式的日期时间格式,如下所示:

Additional information: String was not recognized as a valid DateTime.
开始日期:

2018/06/30 23:00
截止日期:

2018/07/01 19:32
现在我想把这个字符串转换成如下格式:

2017-02-11T19:58:18.918Z
   var properStart = DateTimeOffset.ParseExact(startdate, "yyyy-MM-dd'T'HH:mm:sszzz",
                                                       CultureInfo.InvariantCulture).ToString();
   var properEnd = DateTimeOffset.ParseExact(enddate, "yyyy-MM-dd'T'HH:mm:sszzz",
                                                CultureInfo.InvariantCulture).ToString();
开始日期和结束日期都应采用此日期字符串格式

我试过这样的方法:

2017-02-11T19:58:18.918Z
   var properStart = DateTimeOffset.ParseExact(startdate, "yyyy-MM-dd'T'HH:mm:sszzz",
                                                       CultureInfo.InvariantCulture).ToString();
   var properEnd = DateTimeOffset.ParseExact(enddate, "yyyy-MM-dd'T'HH:mm:sszzz",
                                                CultureInfo.InvariantCulture).ToString();
但这给了我如下错误:

Additional information: String was not recognized as a valid DateTime.

我在这里做错了什么

您正在尝试分析此字符串:

"2018/06/30 23:00"
指定此格式:

"yyyy-MM-dd'T'HH:mm:sszzz"
该格式与该字符串不匹配,因此解析失败。从输入的格式进行分析:

var properStart = DateTimeOffset.ParseExact(startdate, "yyyy/MM/dd HH:mm",
                                                   CultureInfo.InvariantCulture)
然后输出到所需的格式:

var properStartOutput = properStart.ToString("yyyy-MM-dd'T'HH:mm:sszzz");
或者,如果您真的希望所有内容都集中在一行中:

var properStart = DateTimeOffset.ParseExact(startdate, "yyyy/MM/dd HH:mm",
                                                   CultureInfo.InvariantCulture).ToString("yyyy-MM-dd'T'HH:mm:sszzz").

关键是解析输入和格式化输出是两种不同的操作。

您正在尝试解析此字符串:

"2018/06/30 23:00"
指定此格式:

"yyyy-MM-dd'T'HH:mm:sszzz"
该格式与该字符串不匹配,因此解析失败。从输入的格式进行分析:

var properStart = DateTimeOffset.ParseExact(startdate, "yyyy/MM/dd HH:mm",
                                                   CultureInfo.InvariantCulture)
然后输出到所需的格式:

var properStartOutput = properStart.ToString("yyyy-MM-dd'T'HH:mm:sszzz");
或者,如果您真的希望所有内容都集中在一行中:

var properStart = DateTimeOffset.ParseExact(startdate, "yyyy/MM/dd HH:mm",
                                                   CultureInfo.InvariantCulture).ToString("yyyy-MM-dd'T'HH:mm:sszzz").
关键是解析输入和格式化输出是两种不同的操作