c#序列化JSON日期为ruby

我有一个C#应用程序,它将其DTO序列化为JSON,并将它们发送给由Ruby处理的线路。 现在序列化日期的格式如下:

/Date(1250170550493+0100)/ 

当这击中Ruby应用程序时,我需要将此字符串表示forms转换回日期/日期时间/时间(无论它在Ruby中)。 有什么想法我会怎么做?

干杯,克里斯。

您可以解析自纪元以来的毫秒数,例如:

 def parse_date(datestring) seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0 return Time.at(seconds_since_epoch) end parse_date('/Date(1250170550493+0100)/') 

你仍然需要处理时区信息( +0100部分),所以这是一个起点。

您可以使用Json.NET来序列化DTO而不是内置的.NET JSON序列化程序。 它为您提供了如何序列化日期的灵活性(即作为构造函数,ISO格式等)。

.NET从纪元开始以毫秒为单位进行序列化,因此您需要将时区前的部分除以1000.其他明智的日期将是数千年

您可以使用Time.strptime将其解析为具有正确时区的Time对象:

 Time.strptime(string, "/Date(%Q%z)/") 

例如:

 string = "/Date(1250170550493+0100)/" Time.strptime(string, "/Date(%Q%z)/") #=> 2009-08-13 14:35:50 +0100