繁体   English   中英

将 JSON 日期转换为 C# 日期时间变量

[英]Convert JSON date to C# datetime variable

我想将我的 JSON 格式的日期转换为 C# DateTime 变量。 尝试使用Convert.ToDateTime将其转换

(“2016-01-15T11:44:52-07:00”)

给我这个输出

“2016 年 1 月 16 日上午 12:14:52” 在此处输入图片说明

我无法确定它是否是正确的输出,因为我的输入日期是 2016 年 1 月 15 日,但在输出中它是 2016 年 1 月 16 日。

如何将 JSON 日期值转换为 C# 日期值?

看起来您当前的时区现在是 UTC +05:30 ,这就是Convert.ToDateTime方法将这些值添加到结果并生成1/16/2016 00:14:52作为值的原因。

由于您的字符串有一个偏移量部分,我会将它解析为DateTimeOffset而不是Datetime

var dto = DateTimeOffset.Parse("2016-01-15T11:44:52-07:00");

这将生成{15.01.2016 11:44:52 -07:00}作为DateTimeOffset

在此处输入图片说明

不过既然你说这个和Json有关,那么这个技术应该也有一些解析的方法吧。 使用这些方法会更好,但我不熟悉 JSON。

您似乎对时区有问题。 尝试使用DateTimeStyles.RoundtripKind解析

using System.Globalization;

var s1 = "2016-01-15T11:44:52-07:00";
var date = DateTime.Parse(s1, CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM