为什么strftime中的Ruby Time Zone Designator格式化不起作用?

时间:2014-09-28 05:12:07

标签: ruby strftime google-sitemap

我正在构建a sitemap for Google,并希望使用Ruby以推荐格式使用带有时区的W3C标准格式化日期时间,如下所示,

YYYY-MM-DDThh:mmTZD

其中TZD是时区指示符。但是,Ruby on Rails从SQL数据库的last_updated字段导出的默认格式中有空格,例如

2014-09-19 10:33:05 UTC

如何格式化ruby中的日期时间以删除空格并以正确的格式包含时区?

可以使用strftime方法在ruby中访问TZD,如下所示:

myobject.updated_at.strftime("%Y-%m-%dT%H:%M:%S%z")

这将使用以下格式的TZD格式化时间

2014-09-26T07:53:14+0000

但是我需要以+00:00

的格式获得TZD

根据the Ruby docs,我应该可以使用

%:z

然而,这显示为

2014-09-26T08:10:21%:z

ruby​​ 1.8.7

1 个答案:

答案 0 :(得分:1)

是的,但您链接的文档是针对最新的稳定版本(1.9.3),而不是1.8.7 - 不再支持BTW。似乎{1}}选项在Ruby 1.8.7中不可用。

还有稳定的版本:2.0.0和2.1.3 - 在任何一个版本中你都会得到所需的行为。