ruby - 为什么 strftime 中的 Ruby 时区指示符格式不起作用?

标签 ruby strftime xml-sitemap

我正在 build 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.9.3),而不是 1.8.7 - 顺便说一句 - 不再受支持。而且似乎 %:z 选项在 Ruby 1.8.7 中不可用。

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

关于ruby - 为什么 strftime 中的 Ruby 时区指示符格式不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26081853/

相关文章:

c++ - 在 C++ 中格式化带小数秒的日期和时间

seo - 有没有比站点地图更有效的方法来添加/强制重新抓取/删除您网站在谷歌中的索引条目?

ruby-on-rails - 运行错误 'requirements_debian_libs_install libssl-dev' ,

java - 将 java.text.DateFormat 实例转换为 strftime 字符串?

ruby-on-rails - 在 rake 任务期间关闭观察者的简单方法?

python - 如何在不同的语言环境中对日期对象进行 strftime?

java - Hybris 站点地图不包含所有产品

seo - 具有备用语言网址的站点地图,但图像相同

java - 使用 HMAC SHA-256 和 Base64Encoder 进行签名

ruby-on-rails - 在哪里放置可重用的方法以供 rails 中的 Controller 访问