我有一个像这样创建的日期时间对象:
dt = datetime(2023, 9, 18, 22, 30, 0, tzinfo=timezone(timedelta(hours=9)))
这相当于日本标准时间 2023 年 9 月 18 日晚上 10:30。我想像这样打印这个日期时间:
2023-09-18 22:30:00+09:00
我尝试了以下选项:
dt.strftime("%Y-%m-%d %H:%M:%S%Z") # 2023-09-18 22:30:00UTC+09:00
dt.strftime("%Y-%m-%d %H:%M:%S%z") # 2023-09-18 22:30:00+0900
这些都不是我想要的格式,现在我要么必须从第一个格式中删除
UTC
,要么在第二个格式的倒数第三个位置添加一个冒号。有没有办法获得我想要的输出而不必诉诸字符串操作?
有没有办法获得我想要的输出而不必诉诸字符串操作?
您只需将
dt
转换为 str
即可做到这一点:
print(str(dt)) # which gives 2023-09-18 22:30:00+09:00
使用 isoformat 并将日期/时间
sep
设置为空格和 timespec
秒:
from datetime import datetime, timezone, timedelta
dt = datetime(2023, 9, 18, 22, 30, 0, tzinfo=timezone(timedelta(hours=9)))
print(dt.isoformat(" ", timespec="seconds")
# 2023-09-18 22:30:00+09:00