Проблема состоит в том, что res.sendStatus
наборы данный Код состояния HTTP ответа и отправляет свое строковое представление как орган по ответу (см. документация ). res.json
установит заголовок ответа типа контента, но во время времени ответ будет уже отправлен клиенту.
Так вместо того, чтобы использовать res.sendStatus
Вы могли просто использовать res.status
:
response.status(201).json(JSON.parse(body));
Используйте метод in_time_zone класса DateTime
Loading development environment (Rails 2.3.2)
>> now = DateTime.now.utc
=> Sun, 06 Sep 2009 22:27:45 +0000
>> now.in_time_zone('Eastern Time (US & Canada)')
=> Sun, 06 Sep 2009 18:27:45 EDT -04:00
>> quit
Итак, для вашего конкретного примера
Annotation.last.created_at.in_time_zone('Eastern Time (US & Canada)')
Если вы добавите это в свой /config/application.rb
config.time_zone = 'Eastern Time (US & Canada)'
, тогда вы можете использовать ячейку
Annotation.last.created_at.in_time_zone
, чтобы получить время в указанном часовом поясе.
Установите часовой пояс на восточное время.
Вы можете установить ваш часовой пояс по умолчанию в config / environment.rb
config.time_zone = "Eastern Time (US & Canada)"
Теперь все записи, которые вы извлекаете, будут в этом часовом поясе. Если вам нужны другие часовые пояса, скажем, в зависимости от часового пояса пользователя, вы можете изменить его с помощью before_filter в вашем контроллере.
class ApplicationController < ActionController::Base
before_filter :set_timezone
def set_timezone
Time.zone = current_user.time_zone
end
end
Просто убедитесь, что вы сохраняете все свое время в базе данных как UTC, и все будет хорошо.