2014-09-28 14 views
1

Я строю a sitemap for Google, и вы хотите использовать рубин для форматирования DateTime в рекомендуемом формате, используя стандарт W3C с часовым поясом, как это,Почему форматирование указателя часовых поясов Ruby в strftime не работает?

YYYY-MM-DDThh:mmTZD 

где TZD часовой пояс Designator. Однако по умолчанию формат экспортируемых из last_updated поля из базы данных SQL с помощью Ruby On Rails имеет пробелы в нем, например,

2014-09-19 10:33:05 UTC 

Как форматировать DateTime в рубин, чтобы удалить пробелы и включить часовой пояс в правильном формат?

TZD можно получить в рубине с использованием метода STRFTIME, например:

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

Это формат времени с TZD в следующем формате

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

Однако мне нужно, чтобы получить ТЗД в формат +00: 00

по the Ruby docs я должен быть в состоянии использовать

%:z 

Однако это показывает, как

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

рубинового 1.8.7

ответ

1

Да, но документы вы ссылаетесь являются для последней стабильной версии (1.9.3), а не 1.8.7 - что BTW - больше не поддерживается. И кажется, что опция %:z не была доступна в Ruby 1.8.7.

Есть также стабильные версии: 2.0.0 и 2.1.3 - в любом из них вы получите требуемое поведение.

+0

Благодарим за отзыв! – xiatica