如何将时区塔什干 (UTC+5) 设置为此代码
from loguru import logger as lg
def setup_logger():
format = (
"<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "
"<level>{level: <8}</level> | "
"<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> | "
"<level>{message}</level>"
)
lg.add("logs/debug.log", format=format,
level="DEBUG", rotation="1 week", compression="zip")
我查遍了整个互联网,但找不到。 请帮忙!
我尝试了钟摆、日期时间和其他东西。我认为 loguru 中的“记录”将是真实的,但我不能。
如果您运行在 Linux、macOS 或其他直接支持 IANA 时区的操作系统(即不是 Windows)上,您应该能够在应用程序启动之前设置
TZ
环境变量。
export TZ=Asia/Tashkent
python app.py
或者,您可以在应用程序中执行此操作,如下所示:
import os, time
os.environ['TZ'] = 'Asia/Tashkent'
time.tzset()
或者,您可以采用此 github 问题中的方法来更新 loguru 中使用的记录:
def set_datetime(record):
dt = datetime.datetime.now(ZoneInfo("Asia/Tashkent"))
record["extra"]["datetime"] = dt
logger.configure(patcher=set_datetime)
logger.add(sys.stderr, format="{extra[datetime]} {message}")
这需要Python 3.9+使用
ZoneInfo
来获取特定时区的当前时间。如果需要,您可以在旧版 Python 中使用 pendulum、arrow 或 pytz。