Почему я получаю неправильное время, если установлен правильный часовой пояс в рельсах? - PullRequest
2 голосов
/ 17 апреля 2020

Я пытаюсь сохранить часы открытия и закрытия ветви как time в ruby на рельсах, но она сохраняется с разницей -6 часов, когда мне нужно, чтобы она была -5 как есть местное время

В других моделях я сохраняю дату и время как datetime, и сохраняется правильное время, но в филиале мне нужно только время

в моем приложении. rb

config.time_zone = 'Monterrey' // It has -5 difference

В моей схеме

  create_table "branches", force: :cascade do |t|
    t.string "name"
    t.string "address"
    t.time "open_time"
    t.time "close_time"
  end

// In bookings work correctly

 create_table "bookings", force: :cascade do |t|
    t.string "client_name"
    t.datetime "date"
  end

Пример

Если я сохраню бронирование, имеет правильный часовой пояс

> Booking.last.date
=> Sun, 12 Apr 2020 17:31:00 CDT -05:00

Но если я сохраняю ветку, неправильный часовой пояс

> Branch.last.open_time
=> Fri, 31 Dec 1999 22:50:00 CST -06:00 

1 Ответ

1 голос
/ 17 апреля 2020

При отображении метки времени ruby сообщит вам как название часового пояса (ie: CDT, CST), так и смещение от UT C (ie: -05: 00, -06 : 00). Два часовых пояса, которые вы видите:

  • Центральное летнее время:

    > Booking.last.date
    => Sun, 12 Apr 2020 17:31:00 CDT -05:00
    
  • Центральное поясное время:

    > Branch.last.open_time
    => Fri, 31 Dec 1999 22:50:00 CST -06:00 
    

Учет летнего времени - единственная разница между этими часовыми поясами.

Географически оба часовых пояса представляют одну и ту же область, где CST используется в зимние месяцы, а CDT - в летние месяцы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...