使用以下格式转换日期时间字符串:(yyyy-MM-dd' T' hh:mm:ss-zzz)

时间:2015-11-23 19:28:13

标签: c# datetime json.net

我收到的JSON字符串包含如下所示的日期:2015-07-09T08:38:49-07:00其中最后一部分是时区。有没有标准方法将其转换为DateTimeOffset

这是我到目前为止所做的:

var olu = JsonConvert.DeserializeObject<OneLoginUser>(jToken.ToString(), new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd'T'HH:mm:sszzz" });

这不会反转任何日期。我已尝试使用-Zhh:mm获取时区数据,但我似乎无法反序列化任何日期。

作为参考,这是来自OneLogin,一个SSO提供商。 Here's a link到用户文档。请注意顶部日期的位置。

1 个答案:

答案 0 :(得分:1)

尝试这样的格式字符串:

"yyyy-MM-dd'T'hh:mm:ss%K"

从示例中可以看出,这比您指定的要好(重复的hh:mm可能会搞砸了)。

string input = "2015-07-09T08:38:49-07:00";
DateTime dt = DateTime.ParseExact(input, "yyyy-MM-dd'T'hh:mm:ss%K", System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine(input);
Console.WriteLine(dt.ToString());