上篇文章介绍了如何使用 Python 自动上传更新 Markdown 格式的文章到 WordPress,但是上传后发现发布时间总是在设定时间的8小时以后。搜索了很多方法都不起作用,所以简单粗暴,上传的时候直接时间减8小时即可。

1
2
from datetime import timedelta
post_modified_date = post_modified_date - timedelta(hours = 8)

这样处理似乎通用性欠佳,因为我们能确定这个问题和时区有关,因此可按照本地时区确定 timedelta。

  1. tzlocal.get_localzone().key 获取当前系统时区名
  2. pytz.timezone(时区名) 将时区名转换成时区信息
  3. datetime.now(时区信息).utcoffset() 获取当前时区和 UTC 时区的偏移量 timedelta
    1
    2
    3
    import tzlocal
    import pytz
    local_timedelta = datetime.now(pytz.timezone(tzlocal.get_localzone().key)).utcoffset()
    将硬编码的 timedelta 更换成从本机时区换算的 local_timedelta 即可。
    1
    post_modified_date = post_modified_date - local_timedelta