изменение формата даты и времени с даты на дату и время - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть список дат, хранящихся в виде строк. Мне нужно преобразовать их в этот формат "%Y%m%d %H:%M:%S %Z"

Я не могу добиться этого, поскольку у даты, хранящейся в виде строки, нет времени, только дата. например. 2015-06-12

ниже - одна итерация кода / идеи, которую я попробовал, но не смог. Любые предложения приветствуются!

d = "2015-06-12"

x = datetime.datetime.strptime(d, "%Y-%m-%d").date()    

x =  datetime.date(x) + datetime.time(10, 23)

print(x)

1 Ответ

1 голос
/ 29 сентября 2019

Вы можете использовать datetime.replace():

from datetime import datetime

d = "2015-06-12"
x = datetime.strptime(d, "%Y-%m-%d").replace(hour=10, minute=23)

Для печати в нужном формате вы можете использовать datetime.strftime():

print(x.strftime("%Y%m%d %H:%M:%S %Z"))

НО не будет печататься имя часового пояса (% Z), поскольку созданный datetime объект не имеет информации о часовом поясе. Вы можете добавить его вручную, указав разницу времени между UTC и часовым поясом:

from datetime import datetime, timezone, timedelta

x = datetime.strptime(d, "%Y-%m-%d").replace(hour=10, minute=23,
                                             tzinfo=timezone(timedelta(hours=6), name="CST"))

или установить местный часовой пояс:

x = datetime.strptime(d, "%Y-%m-%d").replace(hour=10, minute=23, 
                                             tzinfo=datetime.utcnow().astimezone().tzinfo)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...