Python Arrow миллисекунды
Я пытаюсь понять одну простую вещь - как конвертировать arrow.Arrow
объект в миллисекундах. Я читал следующую ветку, но мне все еще не ясно, как получить длинное число в миллисекундах.
Я хочу что-то вроде:
def get_millis(time: arrow.Arrow):
... some magic goes here ...
print(get_millis(time))
OUTPUT:
1518129553227
Спасибо
5 ответов
Это не элегантный ответ: из вашего связанного вопроса вы можете получить миллисекунды в виде строки и затем добавить их к метке времени:
import arrow
now = arrow.utcnow()
s = now.timestamp
ms = int(now.format("SSS"))
print(s * 1000 + ms)
Какие отпечатки:
1518131043594
По сути, недвижимость, которую вы ищете,
float_timestamp
Например
now_millisecs = round(arrow.utcnow().float_timestamp, 3)
now_microsecs = round(arrow.utcnow().float_timestamp, 6)
если вам не нравится плавающая точка, вы можете взять ее отсюда с помощью:
str(now_millisecs).replace('.', '')
Я лично оставляю представление с плавающей запятой как для удобства просмотра, так и для простоты вычислений (сравнения и т. Д.).
import arrow
def get_millis(time):
return time.timestamp * 1000 + time.microsecond / 1000
print(get_millis(arrow.now()))
Вы также можете отформатировать в официальную документацию ms, а затем проанализировать ее до int и обрезать до длины, чем вам нужно.
int(arrow.utcnow().format("x")[:13])
Вот читаемый способ:
import arrow
def get_millis():
return int(arrow.utcnow().timestamp() * 1000)