DateTime
класса кажется излишним, и после прочтения этого бита в документации для расширения Rails класса, также представляется потенциально опасным:В чем смысл класса DateTime?
DateTimes не знают о правилах перехода на летнее время, поэтому используйте последовательный Некоммерческий -Dst смещение при создании DateTime со смещением в локальной зоне
Там же это, в документации Rails для DateTime#to_time
:
попытки с превратить себя в объект Ruby Time; возвращает себя, если выходит за пределы диапазона Ruby Time. Если у меня есть смещение, отличное от 0, self будет просто возвращено без изменений, так как нет чистого способа сопоставить его с временем.
Я предполагаю, что последняя часть вызвана DateTime
, не признавая DST.
Мне кажется, у нас это:
Date
класс представляет собой простую дату без времени.- Класс
Time
представляет собой конкретный момент времени, который неявно включает дату. - Класс
DateTime
такой же, как классTime
, но не понимает DST и иногда не может преобразовать в обычный классTime
.
Нужно ли DateTime
просто изгнать из базы кода или это послужит полезной цели, которой я не хватает?
Я, как правило, согласен с вами в том, что обычно вам нужно время, а не DateTime ... Я только что работал с DateTime, потому что он уже был DateTime ... Я никогда не выбирал его. Это все немного беспорядка ИМО. – d11wtq
Хорошо, есть один случай, когда требуется DateTime: из документации Rails для 'Time.time_with_datetime_fallback':« Возвращает новое время, если запрошенный год может быть размещен по классу Ruby's Time (т. Е. Если год находится в пределах 1970 года. 2038 или 1902..2038, в зависимости от архитектуры системы), в противном случае возвращает DateTime. " –
Есть ли другой случай, когда 'DateTime' неизбежен? –