提问人:Woody1193 提问时间:9/21/2023 最后编辑:FObersteinerWoody1193 更新时间:9/21/2023 访问量:48
打印日期时间,包括时区,但不包括时区名称
Printing a datetime, with timezone, but excluding the timezone name
问:
我有一个 datetime 对象,我创建如下:
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
答:
3赞
Timeless
9/21/2023
#1
有没有办法在不求助于字符串操作的情况下获得我想要的输出?
你可以通过简单地将你的 to str 强制转换为 str
来做到这一点:dt
print(str(dt)) # which gives 2023-09-18 22:30:00+09:00
评论
0赞
Woody1193
9/21/2023
奇怪。我已经打印了好几天了,但我没有注意到这一点。不错的答案datetime
2赞
FObersteiner
9/21/2023
#2
使用日期/时间设置为空格和秒的 ISO 格式: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
评论
1赞
Woody1193
9/21/2023
我不得不抬头看,但这正是我需要的。isoformat
评论