Как получить метку времени UTC в Ruby?
Как получить метку времени UTC в Ruby?
8 ответов
time = Time.now.getutc
обоснование: в моих глазах метка времени-это именно то, что: точка во времени. Это можно точно представить с помощью объекта. Если вам нужно что-то еще, скалярное значение, например секунды с эпохи Unix, интервалы 100 нс с 1601 года или, возможно, строка для отображения или хранения метки времени в базе данных, вы можете легко получить это от объекта. Но это во многом зависит от вашего предназначения.
говоря ,что " истинная метка времени-это число секунды с эпохи Unix " немного не хватает точки, так как это один способ представления точки во времени, но ему также нужна дополнительная информация, чтобы даже знать, что вы имеете дело со временем, а не с числом. А Time
объект решает эту проблему красиво, представляя точку во времени а также будучи явным о том, что это.
форматирование по умолчанию не очень полезно, на мой взгляд. Я предпочитаю ISO8601, поскольку он сортируемый, относительно компактный и широко признанный:
>> require 'time'
=> true
>> Time.now.utc.iso8601
=> "2011-07-28T23:14:04Z"
Что хорошего в метке времени с ее детализацией, заданной в секундах? Я считаю, что гораздо практичнее работать со временем.сейчас же.to_f. Черт, вы даже можете бросить to_s.sub ('.', "), чтобы избавиться от десятичной точки, или выполнить типаж, как это: Integer(1e6*Time.сейчас же.to_f).
правильный способ-сделать Time.now.getutc.to_i
чтобы получить правильную сумму метки времени, просто отображая целое число, не всегда должно совпадать с меткой времени utc из-за различий в часовых поясах.