Подтвердить что ты не робот

Как получить временную метку UTC в Ruby?

Как получить метку времени UTC в Ruby?

4b9b3361

Ответ 1

time = Time.now.getutc

Обоснование: на мой взгляд, отметка времени - это то, что: момент времени. Это может быть точно представлено объекту. Если вам нужно что-то еще, скалярное значение, например. секунд с момента Unix, 100-ns интервалов с 1601 года или, может быть, строки для отображения или хранения метки времени в базе данных, вы можете легко получить это от объекта. Но это сильно зависит от вашего предполагаемого использования.

Говоря, что "истинная временная метка - это количество секунд, так как эпоха Unix" немного не хватает точки, поскольку это один из способов представления точки во времени, но она также нуждается в дополнительной информации, чтобы даже знать, пересмотр времени, а не числа. Объект Time решает эту проблему красиво, представляя точку во времени, а также явную информацию о том, что это такое.

Ответ 2

Вы можете использовать: Time.now.to_i.

Ответ 3

Форматирование по умолчанию не очень полезно, на мой взгляд. Я предпочитаю ISO8601, поскольку он сортируемый, относительно компактный и широко признанный:

>> require 'time'
=> true
>> Time.now.utc.iso8601
=> "2011-07-28T23:14:04Z"

Ответ 4

Обычно метка времени не имеет часовой пояс.

% irb
> Time.now.to_i == Time.now.getutc.to_i
=> true

Ответ 5

Какая польза от временной отметки с ее детализацией в секундах? Я нахожу его гораздо более практичным, работая с Time.now.to_f. Черт, вы можете даже выбросить to_s.sub('.', ''), Чтобы избавиться от десятичной точки, или выполнить такой тип: Integer (1e6 * Time.now.to_f).

Ответ 6

Time.utc(2010, 05, 17)

Ответ 7

если вам нужна удобочитаемая временная метка (как у рельсовых миграций) ex. " 20190527141340 "

Time.now.utc.to_formatted_s(:number)  # using Rails

Time.now.utc.strftime("%Y%m%d%H%M%S") # using Ruby

Ответ 8

time = Time.zone.now()

Он будет работать как

irb> Time.zone.now
=> 2017-12-02 12:06:41 UTC

Ответ 9

Правильный способ - сделать Time.now.getutc.to_i, чтобы получить правильную метку времени, поскольку простое отображение целого числа не всегда должно быть таким же, как временная метка utc из-за различий в часовых поясах.