Python 时区问题

之前出现一个问题 python 时区

  • 就是定时任务不运行 python 脚本 排查运来是运行了 任务 但是是UTC时区
  • 然后测试脚本在终端运行时间是正常的
  • 原因是: 终端会使用用户当前的 ENV 的时区 是正常的,但是 cron 是一个单独用户 没有设置时区信息 所以是UTC时区

方案一 设置cron 用户环境变量

  • crontab 文件中设置环境变量
TZ=Asia/Shanghai
  • 参数传递
* * * * *  TZ=Asia/Shanghai  /path/to/your/script.py > /path/to/logfile.log 2>&1

方案二 python 脚本中设置时区

  • 改变脚本中ENV
import os
os.environ['TZ'] = 'Asia/Shanghai'  
  • 在datetime 模块可以处理时区操作
import pytz
from datetime import datetime

# 设置时区
tz = pytz.timezone('Asia/Shanghai')

# 获取当前时间并转换为指定时区时间
now = datetime.now(tz)
print(now)

posted @ 2024-06-17 09:55  vx_guanchaoguo0  阅读(4)  评论(0编辑  收藏  举报