#python #datetime
#python #дата-время
Вопрос:
У меня есть даты разных форматов, я просто хочу преобразовать их все в формат эпохи за раз.
Форматы дат похожи на любой из приведенных ниже форматов :
1. "October 1, 2018"
2. "23/05/2018"
3. "20-02-2017"
4. "May 2016"
Ответ №1:
Рекомендую пакет python-dateutil
python-dateutil
pip install python-dateutil
s1 = "October 1, 2018"
s2 = "23/05/2018"
s3 = "20-02-2017"
s4 = "May 2016"
from dateutil import parser
r1 = parser.parse(s1)
r2 = parser.parse(s2)
r3 = parser.parse(s3)
r4 = parser.parse(s4) # parser.parse(s4).timestamp() you can get timestamp this way
print(r1, r2, r3, r4)
# 2018-10-01 00:00:00
# 2018-05-23 00:00:00
# 2017-02-20 00:00:00
# 2016-05-04 00:00:00
Комментарии:
1. Tanq @jia jimmy ваше решение дало мне одинаковый формат для всех дат, затем я использовал time.mktime(r3.timetuple()) и у меня это сработало
2. @himabindu рад, что это помогло, и если вы просто хотите получить временную метку, которую вы можете напрямую использовать
r3.timestamp()
дляr3
тогоdatetime
, что теперь является объектом.
Ответ №2:
Вы это имели в виду? Это стандартный способ преобразования строковой даты в дату-время эпохи
from datetime import datetime
dt = datetime.strptime('October 1 2018', '%b %d %Y')
print (dt)