Как преобразовать человекообразное время в формате 20.12.2016 09:38:42,76
в метки времени Unix в миллисекундах? Я нашел много похожих вопросов, но не нашел этого конкретного вопроса/ответа.Преобразование даты и времени python в метку времени в миллисекундах
7
A
ответ
8
В Python 3, это может быть сделано в 2 этапа:
- Преобразовать TimeString в
datetime
объект - Multiply Отметка времени
datetime
объекта на 1000, чтобы преобразовать его в миллисекундах.
Например, как это:
from datetime import datetime
dt_obj = datetime.strptime('20.12.2016 09:38:42,76',
'%d.%m.%Y %H:%M:%S,%f')
millisec = dt_obj.timestamp() * 1000
print(millisec)
Выход:
1482223122760.0
strptime
принимает ваш TimeString и форматирует строку в качестве входных данных. Timestring (первый аргумент) указывает что вы на самом деле хотите конвертировать в объект datetime
. Строка формата (второй аргумент) указывает фактический формат строки, которую вы прошли.
Вот объяснение спецификаторов формата от official documentation:
%d
- День месяца как нули десятичного числа.%m
- месяц как десятичное число с нулевым запасом.%Y
- Год со столетиями как десятичное число%H
- Hour (24-часовой формат времени) в качестве нулевого проложенный десятичного числа.%M
- Минута как десятичное число с нулевым запасом.%S
- Второй как десятичное число с нулевым запасом.%f
- Микросекунда как десятичная цифра, с нулевой слева.
3
Вам необходимо проанализировать формат времени, используя strptime.
>>> import time
>>> from datetime import datetime
>>> ts, ms = '20.12.2016 09:38:42,76'.split(',')
>>> ts
'20.12.2016 09:38:42'
>>> ms
'76'
>>> dt = datetime.strptime(ts, '%d.%m.%Y %H:%M:%S')
>>> time.mktime(dt.timetuple())*1000 + int(ms)*10
1482223122760.0
0
Для python2.7
Вы можете отформатировать его в секунды, а затем умножить на 1000, чтобы преобразовать в миллисекунды.
from datetime import datetime
d = datetime.strptime("20.12.2016 09:38:42,76", "%d.%m.%Y %H:%M:%S,%f").strftime('%s')
d_in_ms = int(d)*1000
print(d_in_ms)
print(datetime.fromtimestamp(float(d)))
Выход:
1482206922000
2016-12-20 09:38:42
Смежные вопросы
- 1. Преобразование даты (с миллисекундах) в метку времени
- 2. Преобразование даты и времени в метку времени
- 3. Преобразование даты в метку времени в iOS
- 4. преобразование даты в метку времени в R
- 5. Преобразование даты, даты и времени в timestamp
- 6. Преобразование метки времени в миллисекундах в Postgres
- 7. Преобразование даты строки в метку времени
- 8. Преобразование даты и времени Python
- 9. Преобразование конкретной даты/времени в метку времени с помощью JavaScript
- 10. Панды - формат даты и времени в миллисекундах
- 11. Строка даты и времени в миллисекундах
- 12. Преобразование строки в метку времени?
- 13. Преобразование даты и времени в POSIX
- 14. Преобразование даты и времени в python
- 15. Преобразование времени строки в UNIX метку времени
- 16. Преобразование локального времени в метку времени
- 17. AS400/DB2 - Преобразование целочисленных дат и времени в метку времени?
- 18. Преобразование даты и времени в unix timestamp в python
- 19. Преобразование даты и времени в формат даты и времени
- 20. Преобразование данных в метку времени
- 21. Преобразование даты и времени
- 22. Преобразование даты и времени
- 23. Преобразование даты и времени
- 24. Преобразование даты и времени
- 25. Преобразование строки метку времени в метку времени MySQL с PHP
- 26. Получить текущую метку времени с миллисекундах
- 27. Преобразование даты и времени в Unix timestamp
- 28. Получение времени в миллисекундах с даты
- 29. преобразование int в метку времени или любой формат даты sql
- 30. Эффективное преобразование строкового времени в миллисекундах
Вам необходимо предоставить соответствующую строку формата для 'datetime.datetime.strptime'. См. [Docs] (https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior). –