我这里有这个日期:
DateTime RelevantDate = new DateTime(2017, 11, 13, 16, 0, 0, 0);
request.RelevantDate = Convert.ToDateTime(RelevantDate.ToString("o"));
我期待:
2017-11-13T16:00:00-05:00
相反,我得到:
2017-11-13T16:00:00
这确实需要采用这种格式:2017-11-13T16:00:00-05:00,我该怎么做? request.RelevantDate 期待 DateTime
如果我这样做:
request.RelevantDate = Convert.ToDateTime(DateTime.Now.ToString("o"));
它给了我正确的格式:
2017-11-08T06:43:39-05:00
最佳答案
如果您使用此构造函数创建 DateTime
,则其 Kind
属性为 Unspecified
,即它既不是本地时间也不是 UTC。
DateTime.Now
返回带有 DateTimeKind.Local
的对象,这就是将时区添加到 .ToString("o") 的输出中的原因
。
您可以使用另一个构造函数,您可以在其中明确地将类型设置为 Local
,例如新的 DateTime(2017, 11, 13, 16, 0, 0, 0, DateTimeKind.Local)
。
这样,时区将出现在 .ToString("o")
的输出中。
关于c# - ASP.NET DateTime 无法正确转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47178818/