JSON.NET日期与时区中的空格偏移

时间:2017-08-14 19:01:49

标签: .net json.net timezone-offset

我对VB.NET程序(VS2012 / .NET框架4)有一个奇怪的问题,它使用JSON.NET(Newtonsoft)v4.0.8来序列化对象。我正在序列化的类的属性中有一些日期,并且通常日期将被序列化以包括+0000或+0100的时区偏移,这是我期望的。但是,在客户的计算机上,加号被序列化为空格,然后在进行反序列化后(已经在数据库中,但在使用相同JSON.NET DLL的相同VB.NET程序中),deserialise方法抛出异常,说字符串的格式不正确(我可以看到它是在尝试解析JSON.NET DLL核心的数字时)。

我在计算机和几乎所有客户的计算机上看到的日期示例如下:

  

“/日期(1455017231091 + 0000)/”

然而对于这一个客户(可能还有一些其他客户,根据我看到的结果异常的次数判断),它出现如下:

  

“/日期(1455017231091 0000)/”

我甚至不确定如何可靠地处理这个问题(可能是一个正则表达式,它查找适当的位数后跟一个空格然后是四位数)但首先我想知道这是否是某些东西是否可以通过使用日期序列化器上的设置来阻止它发生。

请注意,由于这已经投入生产,我知道JSON.NET默认已切换为ISO8601日期格式,我正在考虑使用它,但我还需要先转换存储在数据库中的所有现有日期。 / p>

我目前用于序列化的代码如下所示:

stringStoredInDatabase = JsonConvert.SerializeObject(instanceOfT)

并且反序列化的代码如下所示:

JsonConvert.DeserializeObject(Of T)(stringStoredInDatabase)

任何建议表示赞赏。

0 个答案:

没有答案