Using '%N'
or '%N%z'
似乎触发了一个错误strptime
,得出当前日期/时间:
Time.strptime('1262300400000+0100', '%N') # => 2014-08-14 16:30:01 -0700
Time.strptime('1262300400000+0100', '%N%z') # => 2014-08-14 08:30:01 -0700
Using '%Q%z'
解析为:
Time.strptime('1262300400000+0100', '%Q%z') # => 2010-01-01 00:00:00 +0100
The Time.strptime文档 http://www.ruby-doc.org/stdlib-2.1.2/libdoc/time/rdoc/Time.html#method-i-strptime没有提到'%Q'
,但是DateTime.strptime http://www.ruby-doc.org/stdlib-2.1.2/libdoc/time/rdoc/Time.html#method-i-strptime医生确实如此。
如果您已经解析了日期字符串,那么格式化它很容易:
foo = Time.strptime('1262300400000+0100', '%Q%z') # => 2010-01-01 00:00:00 +0100
foo.strftime('%Y-%m-%d %H:%M:%S %z') # => "2010-01-01 00:00:00 +0100"
See the strftime文档 http://www.ruby-doc.org/core-2.1.2/Time.html#method-i-strftime有关格式选项的更多信息。
请注意,有一些快捷方式,例如'%Y-%m-%d'
and '%H:%M:%S'
:
foo.strftime('%F %T %z') # => "2010-01-01 00:00:00 +0100"
真正的问题是 .NET 如何序列化 JSON 中的日期。谷歌搜索显示了许多讨论此问题的页面:
- "在 ASP.NET MVC 中处理 JSON 日期 http://www.developer.com/net/dealing-with-json-dates-in-asp.net-mvc.html"
- "JSON 日期就是噩梦。另外,JSON.NET 和 ASP.NET Web API http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx"
.NET 并不是唯一这样做的。 Ruby 的 JSON 和 YAML 序列化器偶尔会做类似的事情,修复方法是查看正在输出的 JSON,然后提供to_json
or to_s
or to_h
处理程序将产生最能代表数据的 JSON 输出。 JSON 应该可以在 JavaScript 和后端系统之间传输,而 .NET 并不是唯一提供该功能的语言。 Perl、Ruby、Python 以及谁知道有多少其他语言可以解析和发出 JSON,并且它们都需要遵循相同的规则。