欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pytz格式化北京時間多出6分鐘問題的解決方法

 更新時間:2019年06月21日 08:22:54   作者:棲遲于一丘  
這篇文章主要給大家介紹了關于pytz格式化北京時間多出6分鐘問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

起步

在django框架中,用的是 pytz 庫處理時區(qū)問題,所以我也嘗試用這個庫來處理。但發(fā)現了一個奇怪的問題:

import datetime
import pytz

dt = datetime.datetime(2019,6,20, 12, tzinfo=pytz.timezone('Asia/Shanghai'))
print(dt) # 2019-06-20 12:00:00+08:06

為什么多出了 6 分鐘來?

原因

這是因為 pytz 里保存是本地時間。

fmt = '%Y-%m-%d %H:%M:%S %Z%z'
dt = datetime.datetime(2019,6,20, 12, tzinfo=pytz.timezone('Asia/Shanghai'))
print(dt.strftime(fmt)) # 2019-06-20 12:00:00 LMT+0806

LMT 即 Local Mean Time 本地時間,也就是說 'Asia/Shanghai' 這個地區(qū)比utc多了8小時零6分鐘,并不是北京時間。

解決

所以 pytz 提供了 normalize() 方法來糾正這個問題,但傳入的得是不帶時區(qū)的日期對象:

cn_zone = pytz.timezone('Asia/Shanghai')
dt = cn_zone.localize(dt = datetime.datetime(2019,6,20, 12))
print(dt) # 2019-06-20 12:00:00+08:00
print(dt.strftime(fmt)) # 2019-06-20 12:00:00 CST+0800

# 或者
dt = datetime.datetime(2019,6,20, 12)
print(dt.astimezone(cn_zone)) # 2019-06-20 12:00:00 CST+0800

這里推薦的還是用 astimezone 的方式,django 也是采用這種處理方式。

時區(qū)轉換

以從北京時間轉紐約時間為例,已知結果它們之間應該相差12小時。

dt = datetime.datetime(2019,6,20, 12)

print(dt.astimezone(tz=cn_zone)) # 2019-06-20 12:00:00+08:00
print(dt.astimezone(tz=cn_zone).astimezone(ny_zone)) # 2019-06-20 12:00:00-04:56

額外

另一個解決時區(qū)問題就是使用標準庫的 dateutil 工具。官方內置,值得信賴。它支持在創(chuàng)建日期對象的時候進行設置,更為方便:

cn = tz.gettz('Asia/Shanghai')

aware_dt = datetime.datetime(2019,6,20, 12, tzinfo=cn)
print(aware_dt ) # 2019-06-20 12:00:00+08:00

# 時區(qū)轉換(從北京時間轉到紐約時間)
ny = tz.gettz('America/New_York')
print(aware_dt.astimezone(tz=ny)) # 2019-06-20 00:00:00-04:00

我更喜歡這種方式。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

相關文章

  • Python打印scrapy蜘蛛抓取樹結構的方法

    Python打印scrapy蜘蛛抓取樹結構的方法

    這篇文章主要介紹了Python打印scrapy蜘蛛抓取樹結構的方法,實例分析了打印scrapy蜘蛛抓取樹結構的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • Python實現的大數據分析操作系統日志功能示例

    Python實現的大數據分析操作系統日志功能示例

    這篇文章主要介紹了Python實現的大數據分析操作系統日志功能,涉及Python大文件切分、讀取、多線程操作等相關使用技巧,需要的朋友可以參考下
    2019-02-02
  • Python實現直方圖均衡基本原理解析

    Python實現直方圖均衡基本原理解析

    這篇文章主要介紹了Python實現直方圖均衡基本原理,本文給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-08-08
  • Python?yield?關鍵詞,

    Python?yield?關鍵詞,

    這篇文章主要介紹了Python?yield?關鍵詞,要理解yield的作用,你必須理解生成器是什么。在理解生成器之前,必須先理解迭代器。下面文章我們就先從
    迭代器開始展開yield關鍵詞的相關自資料 ,需要的朋友可以參考一下
    2021-12-12
  • python跨文件使用全局變量的實現

    python跨文件使用全局變量的實現

    這篇文章主要介紹了python跨文件使用全局變量的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 利用Pytorch實現獲取特征圖的方法詳解

    利用Pytorch實現獲取特征圖的方法詳解

    這篇文章主要為大家詳細介紹了如何利用Pytorch實現獲取特征圖,包括提取單個特征圖和提取多個特征圖,文中的示例代碼講解詳細,需要的可以參考一下
    2022-10-10
  • Python文件右鍵找不到IDLE打開項解決辦法

    Python文件右鍵找不到IDLE打開項解決辦法

    這篇文章主要介紹了Python文件右鍵找不到IDLE打開項解決辦法,本文使用注冊表解決了這個問題,需要的朋友可以參考下
    2015-06-06
  • Pyinstaller 打包發(fā)布經驗總結

    Pyinstaller 打包發(fā)布經驗總結

    這篇文章主要介紹了Pyinstaller 打包發(fā)布經驗總結,使用Pyinstaller打包Python項目包含了大量的坑,感興趣的可以一起來了解一下
    2020-06-06
  • 利用Python的sympy包求解一元三次方程示例

    利用Python的sympy包求解一元三次方程示例

    今天小編就為大家分享一篇利用Python的sympy包求解一元三次方程示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python字典排序的方法

    python字典排序的方法

    在本篇文章里小編給大家整理的是關于python字典怎么排序的相關知識點內容,有興趣的朋友們學習下。
    2019-10-10

最新評論