Найти - Пользователи
Полная версия: Помогите преобразовать дату
Начало » Python для новичков » Помогите преобразовать дату
1
zabigundi
Всю голову сломал но ничего не получается
как в python3.6
Дату формата 2020-04-05T08:53:13+03:00 (как правильно называется этот формат?)
преобразовать в Unix time?
 d='2020-04-05T08:53:13+03:00'
print (d)
i=str(dateutil.parser.parse(d))
print (i)
Romissevd
 from datetime import datetime
d = '2020-04-05T08:53:13+03:00'
a = datetime.strptime(d, '%Y-%m-%dT%H:%M:%S%z')
a.timestamp()
1586065993.0
zabigundi
Romissevd
a = datetime.strptime(d, ‘%Y-%m-%dT%H:%M:%S%z’)
в python3.7 работает
а в python3.6 нет


>>> from datetime import datetime
>>> d = ‘2020-04-05T08:53:13+03:00’
>>> a = datetime.strptime(d, ‘%Y-%m-%dT%H:%M:%S%z’)
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
File “/usr/lib/python3.6/_strptime.py”, line 565, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File “/usr/lib/python3.6/_strptime.py”, line 362, in _strptime
(data_string, format))
ValueError: time data ‘2020-04-05T08:53:13+03:00’ does not match format ‘%Y-%m-%dT%H:%M:%S%z’
Romissevd
Да в версиях python до 3.7 это работать не будет. В версиях ниже ожидается формат часового пояса без двоеточий.
zabigundi
Romissevd
Да в версиях python до 3.7 это работать не будет. В версиях ниже ожидается формат часового пояса без двоеточий.
Подскажите пожалуйста как решить, очень нужно, буду очень признателен
Romissevd
Вот костыльное решение конечно же, но будет работать
 import re
from datetime import datetime
FORMAT_DATETIME = '%Y-%m-%dT%H:%M:%S%z'
d = '2020-04-05T08:53:13+03:00'
try:
    a = datetime.strptime(d, FORMAT_DATETIME)
except ValueError:
    print('version python < 3.7')
tz = re.search(r'[+]\d{2}\:\d{2}', d).group()
tz_old_format = ''.join(tz.split(':'))
d = re.sub(r'[+]\d{2}\:\d{2}', tz_old_format, d)
a = datetime.strptime(d, FORMAT_DATETIME)
print(a.timestamp())
zabigundi
Romissevd
import re
from datetime import datetime
FORMAT_DATETIME = ‘%Y-%m-%dT%H:%M:%S%z’
d = ‘2020-04-05T08:53:13+03:00’
try:
a = datetime.strptime(d, FORMAT_DATETIME)
except ValueError:
print('version python < 3.7')
tz = re.search(r'\d{2}\:\d{2}', d).group()
tz_old_format = ‘'.join(tz.split(’:'))
d = re.sub(r'\d{2}\:\d{2}', tz_old_format, d)
a = datetime.strptime(d, FORMAT_DATETIME)
print(a.timestamp())
СПАСИБО ОГРОМЕННОЕ!!!!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB