0

当我从 MongoMapper 返回 created_at 和 updated_at 的 JSON 格式时,这是我看到的一个示例

"updated_at\":\"2012-04-25T16:25:05Z\"

最后的 T(时间?)和 Z 是什么?

 irb(main):009:0> Story.last.created_at
  DEBUG - MONGODB (0ms) prototype_development['stories'].find({}).limit(-1)
=> 2012-04-25 16:24:26 UTC
irb(main):010:0> Story.last.created_at.to_s
  DEBUG - MONGODB (0ms) prototype_development['stories'].find({}).limit(-1)
=> "2012-04-25 16:24:26 UTC"
irb(main):011:0> JSON.parse(Story.last.to_json)['created_at']
  DEBUG - MONGODB (0ms) prototype_development['stories'].find({}).limit(-1)
=> "2012-04-25T16:24:26Z"
4

1 回答 1

8

这是一种标准化的时间格式 - ISO8601

打这个irb

> require 'time' #=> true
> Time.now.utc.iso8601 #=> "2012-05-11T01:28:51Z"

来自维基百科

UTC 时区有时用字母 Z 表示——参考等效航海时区 (GMT),自 1950 年左右以来一直用 Z 表示。该字母还指零小时的“区域描述”,即自 1920 年以来一直使用(参见时区历史)。由于 Z 的 NATO 拼音字母和业余无线电单词是“Zulu”,因此 UTC 有时也称为 Zulu 时间。在航空领域尤其如此,祖鲁语是通用标准。这可确保所有飞行员无论身在何处都使用相同的 24 小时制,从而避免在不同时区之间飞行时出现混淆。请参阅军事时区列表,了解除格林威治以外的合格时区中使用的 Z 以外的字母。

于 2012-05-11T00:51:19.160 回答