我有一个日期时间格式的字符串,如下所示:
开始日期:
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();
但这给了我类似以下的错误:
Additional information: String was not recognized as a valid DateTime.
我在这里做错了什么?
答案 0 :(得分:3)
您正在尝试解析此字符串:
"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").
关键是解析输入和格式化输出是两个不同的操作。