Python中如何使用datetime模块打印输出GMT(格林威治标准时间)
解决方法
datetime模块没有内置gmt()方法,这是你写法报错的直接原因。民用场景下GMT(格林威治标准时间)和UTC时间数值几乎一致,可通过以下方式实现打印:
1. 无时区感知的GMT时间(兼容所有Python3版本)
返回的datetime对象不带时区信息,数值和GMT完全匹配:
import datetime dt_gmt = datetime.datetime.utcnow() # 格式化打印时手动标注GMT即可 print(dt_gmt.strftime('%Y-%m-%d %H:%M:%S.%f GMT'))
2. 带时区感知的GMT时间(Python3.2及以上)
通过传入UTC时区参数得到带时区标识的对象:
import datetime dt_gmt = datetime.datetime.now(tz=datetime.timezone.utc) # 此时%Z会输出UTC,民用场景可直接替换为GMT字样 print(dt_gmt.strftime('%Y-%m-%d %H:%M:%S.%f GMT'))
3. 明确指定GMT时区(Python3.9及以上)
使用zoneinfo模块直接指定GMT时区,完全匹配需求:
from datetime import datetime from zoneinfo import ZoneInfo dt_gmt = datetime.now(tz=ZoneInfo("GMT")) print(dt_gmt.strftime('%Y-%m-%d %H:%M:%S.%f %Z'))
注:高精度科研场景下GMT和UTC存在小于0.9秒的差异,普通使用无需区分
内容的提问来源于stack exchange,提问作者Shakescreen
相关产品推荐
相关产品推荐

