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

Python時(shí)間操作之pytz模塊使用詳解

 更新時(shí)間:2022年06月14日 08:11:21   作者:盆友圈的小可愛  
在學(xué)習(xí)Python過程中,我們已經(jīng)了解了一些關(guān)于時(shí)間操作的庫,如:Python內(nèi)置庫:time,datatime和第三方庫:dateutil,pytz等。本文將詳細(xì)講講pytz模塊的使用,需要的可以參考一下

前言

在我們?nèi)粘I钪校瑫r(shí)間概念常伴我們左右。讓我們簡單的回憶一下自己的一天,大致有以下時(shí)間點(diǎn):

  • 8:00,清晨的陽光照射到床頭伴著鬧鐘,你從睡眠中清醒
  • 8:30,你洗漱完成換好工裝,出門上班
  • 9:00,準(zhǔn)時(shí)坐到工位上,開始一天的工作
  • 12:00,吃午飯午休
  • 14:00,開始下午的工作
  • ....,時(shí)間無處不在,在我們?nèi)粘逃?jì)劃中占著標(biāo)志flag的角色

假設(shè),同事突然問你Moscow城市,現(xiàn)在幾點(diǎn)了啦。這時(shí)候我們要經(jīng)過時(shí)區(qū)的換算的一系列麻煩的過程

有沒有更快的方法計(jì)算出指定時(shí)區(qū)的時(shí)間?----答案肯定有

在學(xué)習(xí)Python過程中,我們已經(jīng)了解了一些關(guān)于時(shí)間操作的庫,如:

  • Python內(nèi)置庫:time,datatime,calendar,zoneinfo
  • 第三方庫:dateutil,pytz,arrow

關(guān)于Python時(shí)間操作內(nèi)置庫,大家可以訪問往期內(nèi)容。本期,我們來重點(diǎn)學(xué)習(xí)一下pytz模塊的使用方法,Let's go~~

1. pytz 模塊概述

什么是 pytz 模塊

pytz 模塊是依賴Olson tz數(shù)據(jù)庫導(dǎo)入的,它支持直接使用時(shí)區(qū)名進(jìn)行時(shí)間計(jì)算

pytz 模塊涉及時(shí)區(qū),因此其也指定tzinfo信息(詳情可見datetime.tzinfo

pytz 模塊通常與datetime模塊結(jié)合一起使用,返回具體的時(shí)間名

pytz 模塊可以解決夏令時(shí)結(jié)束時(shí)不明確的問題

重要說明

pytz 模塊支持大多數(shù)的時(shí)區(qū)計(jì)算,使用IANA的數(shù)據(jù)接口,CLDR(Unicode 語言環(huán)境)項(xiàng)目提供翻譯

本地還需要按照依賴是時(shí)區(qū)映射表tzdata數(shù)據(jù)庫(pip install tzdata)

國家時(shí)區(qū)映射關(guān)系表

國家/城市代碼映射表,pytz庫中存儲在_CountryTimezoneDict()字典中

我們可以通過 pytz.country_timezones常量來獲取code,timezon

<pytz._CountryTimezoneDict object at 0x00000256FBE52E30>

pytz 模塊使用方法

由于pytz是第三方庫,因此我們在使用前需要使用pip進(jìn)行下載其依賴庫

pip install pytz

代碼中使用時(shí),我們需要使用import來進(jìn)行導(dǎo)入

# 方式一:導(dǎo)入整個(gè)模塊
import pytz

# 方式二:導(dǎo)入具體的庫
from pytz import timezone

2. pytz 相關(guān)方法

pytz 模塊包含國家碼查詢、時(shí)區(qū)名等方法

創(chuàng)建本地化時(shí)間:

方式一:pytz.timezone(tzname).localise()

tz = pytz.timezone('US/Eastern')
local_time =tz.localize(datetime.datetime(2022, 6, 13,23, 0, 0))
print(local_time)

方式二:local_time.astimezone(tzname)

ast = local_time.astimezone(tz)

方式三:tz.normzlize()處理夏令時(shí)

nor = tz.normzlize(datetime.datetime(2022, 6, 13,23, 0, 0))

時(shí)區(qū)名獲?。?/p>

  • 時(shí)區(qū)名各式化:pytz.timezone(tzname)
  • 獲取所有的時(shí)區(qū):pytz.country_timezones.values()
  • 獲取地區(qū)的代碼:pytz.country_timezones.keys()

3. pytz 時(shí)區(qū)查詢

根據(jù)pytz模塊相關(guān)方法,我們可以寫一個(gè)函數(shù)來實(shí)現(xiàn)場景:

  • 輸入一個(gè)城市:city,如"Simferopol"
  • 輸出城市的時(shí)區(qū)偏離量:如+3

實(shí)現(xiàn)思路,大致如下:

  • 首先調(diào)用pytz.country_timezones.values()獲取到所有的時(shí)區(qū)timezones
  • 使用split()將時(shí)區(qū)的城市名進(jìn)行分割形成列表city_list
  • 先在city_list.index[city]找到City_index
  • 然后根據(jù)City_index在timezones找到時(shí)區(qū)tzname
  • pytz.timezone(tzname)格式化,算出標(biāo)準(zhǔn)時(shí)間
import pytz
from datetime import datetime

def timezon_city_gmt(city):

    timezons = sum(list(pytz.country_timezones.values()),[])
    cityList = [city.split("/")[1] for city in timezons]
    city_index = cityList.index(city)
    tz = pytz.timezone(timezons[city_index])
    gmt = "GMT" + str(datetime.now().astimezone(tz))[-6:]

    return gmt
    
print(timezon_city_gmt("Simferopol"))
---
GMT+03:00
---

4. pytz 日期計(jì)算

同理,我們?nèi)粘I钪懈鶕?jù)當(dāng)?shù)貢r(shí)間,算出對方所在時(shí)區(qū)的當(dāng)?shù)貢r(shí)間,思路與上述大致一樣。

datetime.strptime()將時(shí)間字符串轉(zhuǎn)化成datetime對象

import pytz
from datetime import datetime

def update_datetime_tz(olddatetime, city, formate):
    timezons = sum(list(pytz.country_timezones.values()), [])
    cityList = [city.split("/")[1] for city in timezons]
    city_index = cityList.index(city)
    tz = pytz.timezone(timezons[city_index])
    datetime_type = datetime.strptime(olddatetime, formate)
    newdatetime = datetime_type.astimezone(tz)

    return newdatetime.strftime(str(formate))
    
    
print(update_datetime_tz("2022-06-13 12:46:03","Moscow","%Y-%m-%d %H:%M:%S")) 
---
2022-06-13 07:46:03
---

總結(jié)

本期我們對時(shí)間操作的pytz模塊進(jìn)行基本的了解和學(xué)習(xí)。pytz模塊可以幫助我們快速進(jìn)行時(shí)區(qū)計(jì)算出時(shí)間,pytz模塊具有tzinfo特性。

到此這篇關(guān)于Python時(shí)間操作之pytz模塊使用詳解的文章就介紹到這了,更多相關(guān)Python pytz模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Spire.XLS for Python高效讀取Excel數(shù)據(jù)的代碼實(shí)現(xiàn)

    使用Spire.XLS for Python高效讀取Excel數(shù)據(jù)的代碼實(shí)現(xiàn)

    在數(shù)據(jù)驅(qū)動(dòng)的時(shí)代,Python已成為數(shù)據(jù)處理領(lǐng)域的瑞士軍刀,然而,當(dāng)我們面對最常見的數(shù)據(jù)載體——Excel文件時(shí),如何高效、準(zhǔn)確地從中提取所需信息,卻常常成為許多開發(fā)者和數(shù)據(jù)分析師的痛點(diǎn),本文給大家介紹了如何使用Spire.XLS for Python高效讀取Excel數(shù)據(jù)
    2025-09-09
  • Python中函數(shù)的定義、調(diào)用及作用說明

    Python中函數(shù)的定義、調(diào)用及作用說明

    Python函數(shù)可通過def定義,lambda聲明,支持缺省參數(shù)和不定長參數(shù)(*號,僅一個(gè)且在最后),調(diào)用時(shí)可指定參數(shù)順序,函數(shù)可作為類方法、局部變量或高階函數(shù)參數(shù)/返回值
    2025-07-07
  • pytorch 共享參數(shù)的示例

    pytorch 共享參數(shù)的示例

    今天小編就為大家分享一篇pytorch 共享參數(shù)的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python實(shí)現(xiàn)網(wǎng)上購物系統(tǒng)

    python實(shí)現(xiàn)網(wǎng)上購物系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)網(wǎng)上購物系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • python字典的值可以修改嗎

    python字典的值可以修改嗎

    在本篇文章里小編給大家分享的是一篇關(guān)于python字典的值修改的方法步驟,需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • Python實(shí)現(xiàn)的多進(jìn)程和多線程功能示例

    Python實(shí)現(xiàn)的多進(jìn)程和多線程功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的多進(jìn)程和多線程功能,結(jié)合實(shí)例形式分析了Python多線程與多進(jìn)程實(shí)現(xiàn)分布式系統(tǒng)功能相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • Python如何實(shí)現(xiàn)后端自定義認(rèn)證并實(shí)現(xiàn)多條件登陸

    Python如何實(shí)現(xiàn)后端自定義認(rèn)證并實(shí)現(xiàn)多條件登陸

    這篇文章主要介紹了Python如何實(shí)現(xiàn)后端自定義認(rèn)證并實(shí)現(xiàn)多條件登陸,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python 文件處理注意事項(xiàng)總結(jié)

    Python 文件處理注意事項(xiàng)總結(jié)

    這篇文章主要介紹了Python 文件處理注意事項(xiàng)總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Python利用腳本實(shí)現(xiàn)自動(dòng)發(fā)送電子郵件

    Python利用腳本實(shí)現(xiàn)自動(dòng)發(fā)送電子郵件

    這篇文章主要為大家詳細(xì)介紹了Python如何利用腳本實(shí)現(xiàn)自動(dòng)發(fā)送電子郵件功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-01-01
  • 解決anaconda安裝pytorch報(bào)錯(cuò)找不到包的問題

    解決anaconda安裝pytorch報(bào)錯(cuò)找不到包的問題

    這篇文章主要介紹了解決anaconda安裝pytorch報(bào)錯(cuò)找不到包的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03

最新評論