之前出现一个问题 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)
标签:TZ,Python,Shanghai,Asia,datetime,问题,import,now
From: https://www.cnblogs.com/guanchaoguo/p/18251803