我收到的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" });
这不会反转任何日期。我已尝试使用-Z
和hh:mm
获取时区数据,但我似乎无法反序列化任何日期。
作为参考,这是来自OneLogin,一个SSO提供商。 Here's a link到用户文档。请注意顶部日期的位置。
答案 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());