You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取无时区感知时间?求datetime.utcnow()的替代方案

获取无时区感知UTC时间的替代方案

如果你需要替代datetime.utcnow()来获取无时区感知的UTC时间,有两个可行方案:

  • 方案一:基于带时区的UTC时间移除时区信息
    使用datetime.now(timezone.utc)先获取带UTC时区感知的时间,再通过replace(tzinfo=None)移除时区属性,得到和utcnow()完全一致的无时区UTC时间:

    from datetime import datetime, timezone
    
    naive_utc_time = datetime.now(timezone.utc).replace(tzinfo=None)
    

    这是官方推荐的utcnow()替代路径的变种,既遵循了现代Python推荐的时区感知时间实践,又能满足你对无时区时间的需求。

  • 方案二:通过时间戳转换
    利用time.time()获取当前时间戳,再用datetime.utcfromtimestamp()转换为无时区感知的UTC时间:

    from datetime import datetime
    import time
    
    naive_utc_time = datetime.utcfromtimestamp(time.time())
    

    这个方法直接生成无时区UTC时间,逻辑简单直观。

需要注意的是,官方计划移除utcnow()是因为它容易引发时区混淆问题,推荐优先使用时区感知的时间处理逻辑。如果业务场景允许,建议尽量保留时区信息;若确实需要无时区时间,上述两种方法均可稳定替代。

内容的提问来源于stack exchange,提问作者longlegedcorgi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 00:48:12