亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Python是如何處理不同時區(qū)的

 更新時間:2023年02月22日 09:34:32   作者:夢想橡皮擦  
時區(qū)是指在地球上不同地方的時間差異,地球分為?24?個時區(qū),每個時區(qū)都相對于格林威治標準時間或協(xié)調(diào)世界時(UTC)有所偏移。本文主要和大家來聊聊Python是如何處理不同時區(qū)的,希望對大家有所幫助

時區(qū):時區(qū)是指在地球上不同地方的時間差異,地球分為 24 個時區(qū),每個時區(qū)都相對于格林威治標準時間(GMT)或協(xié)調(diào)世界時(UTC)有所偏移。每個時區(qū)都用一個特定的偏移量表示,表示為“UTC±X”,其中 X 表示偏移量的小時數(shù)。

一個國家的所有地區(qū)都屬于同一個時區(qū),但有些地區(qū)會在兩個相鄰的時區(qū)之間劃分,以便更好地適應當?shù)氐娜粘龊腿章鋾r間。也有一些地區(qū)根據(jù)自己的需要,選擇使用其他時區(qū)的時間。

中國使用一個官方時區(qū),即北京時間,也稱為東八區(qū)(UTC+8),但新疆使用 UTC+6

本篇博客為大家介紹 Python 中關于時區(qū)表示的各個知識點,包括如下知識點:

Python 中的時區(qū)表示 

  • datetime 模塊中的 tzinfo 抽象基類
  • pytz 庫中的時區(qū)表示
  • dateutil 庫中的時區(qū)表示

datetime 模塊中的 tzinfo 抽象基類

tzinfo 是一個抽象基類,用于實現(xiàn)時區(qū)信息。

tzinfo 類需要至少實現(xiàn)以下三個方法:

  • utcoffset(dt):返回一個 timedelta 對象,表示給定日期時間對象 dt 所在時區(qū)與 UTC 的時間差,對于 UTC 時間,返回 None。
  • dst(dt):返回一個 timedelta 對象,表示給定日期時間對象 dt 所在時區(qū)的夏令時修正時間,如果該時區(qū)沒有夏令時修正,則返回 None。
  • tzname(dt):返回一個字符串,表示給定日期時間對象 dt 所在時區(qū)的名稱。

使用 pytz 模塊創(chuàng)建 tzinfo 對象,將其與 datetime 對象一起使用,表示不同時區(qū)的日期時間。

import datetime
import pytz

# 創(chuàng)建 tzinfo 對象
tz = pytz.timezone('Asia/Shanghai')

# 創(chuàng)建 datetime 對象
dt = datetime.datetime(2023, 2, 19, 21, 0, 0, tzinfo=tz)

# 輸出日期時間
print(dt)

運行代碼,得到如下信息:

輸出的結果中有 +08:06 這個就表示在東八區(qū),與 UTC 時間相差八個小時。

pytz 庫中的時區(qū)表示

pytz 庫中的時區(qū)表示通常采用 “區(qū)域/城市” 的格式,例如 “Asia/Shanghai” 表示中國上海所在的時區(qū),pytz 中內(nèi)置了很多時區(qū),可以通過 pytz.all_timezones 獲取所有時區(qū)的列表。

pytz 還提供了許多函數(shù)和方法,使得用戶可以很方便地獲取、判斷、轉換時區(qū)等操作。下面是常用的函數(shù)和方法:

  • pytz.timezone(tzname):返回指定時區(qū)名稱的 tzinfo 對象。
  • pytz.UTC:表示 UTC 時區(qū)的 tzinfo 對象。
  • localize(dt, timezone):將一個 naive datetime 對象賦予指定時區(qū)的時差信息。
  • dt.astimezone(timezone):將一個帶有時區(qū)信息的 datetime 對象轉換到指定時區(qū)的 datetime 對象。
  • datetime.now(timezone):返回當前指定時區(qū)的 datetime 對象。

演示代碼如下所示:

import datetime
import pytz

# 創(chuàng)建一個 datetime 對象,表示當前時間
now = datetime.datetime.now()

# 創(chuàng)建一個 pytz 時區(qū)對象,表示中國時區(qū)
china_tz = pytz.timezone('Asia/Shanghai')

# 使用時區(qū)對象將 datetime 對象轉換為中國時區(qū)時間
china_time = china_tz.localize(now)

# 將中國時區(qū)時間轉換為紐約時區(qū)時間
new_york_tz = pytz.timezone('America/New_York')
new_york_time = china_time.astimezone(new_york_tz)

# 輸出中國時區(qū)時間和紐約時區(qū)時間
print('中國時間:', china_time)
print('紐約時間:', new_york_time)

代碼說明,新手必看:

創(chuàng)建了一個 pytz 時區(qū)對象 china_tz,用于表示中國時區(qū)。然后使用 china_tz.localize(now) 將 now 對象轉換為中國時區(qū)時間,并將結果保存到 china_time 變量中。

創(chuàng)建一個 pytz 時區(qū)對象 new_york_tz,表示紐約時區(qū)。

使用 china_time.astimezone(new_york_tz) 將中國時區(qū)時間 china_time 轉換為紐約時區(qū)時間,并將結果保存到 new_york_time 變量中。

運行代碼,得到如下結果:

dateutil 庫中的時區(qū)表示

dateutil 庫中提供了一個 tz 模塊,其中定義了兩個類來表示時區(qū)信息:

  • tz.tzutc():UTC 時區(qū),即格林威治標準時間。
  • tz.tzoffset(name, offset):表示偏移量為 offset 秒的時區(qū),其中 name 為時區(qū)的名稱。
from dateutil import tz
beijing_tz = tz.tzoffset('Beijing', 8 * 3600)  # 東八區(qū),即 GMT+8
print(beijing_tz)

上述代碼的 8*3000 表示北京時間,比 UTC 快 8 個小時。

到此這篇關于詳解Python是如何處理不同時區(qū)的的文章就介紹到這了,更多相關Python處理不同時區(qū)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論