Когда в Rails следует использовать `DateTime.now.utc` vs.` Time.current.utc`?
В Rails я немного запутался в руководстве между тем, когда использовать DateTime.now.utc и Time.current. Внутри структуры, по-видимому, существуют разные мнения, которые лучше всего, особенно в разных версиях.
Похоже, что DateTime.now.utc
создает временную метку с нулевым временем UTC, а Time.current.utc
создает временную метку с часовым поясом UTC. Это похоже на тонкое различие, но это очень важно во многих случаях (например, вычисления DST).
Когда вы должны использовать DateTime.now.utc
, и когда вы должны использовать Time.current.utc
? Есть ли причина использовать DateTime.now.utc
вместо Time.current.utc
?
Ответы
Ответ 1
Я думаю, вы должны использовать .current
вместо .now
.
Разница в .current
и .now
равна .now
, используя часовой пояс сервера, а .current
используется то, к чему установлена среда Rails. Если он не установлен, то .current
будет таким же, как .now
.
Time.current
Возвращает Time.zone.now, когда Time.zone или config.time_zone установлены, иначе просто возвращает Time.now.
Datetime.current
Возвращает Time.zone.now.to_datetime, когда Time.zone или config.time_zone, в противном случае возвращает Time.now.to_datetime.