久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 帶時(shí)區(qū)的日期格式化操作

瀏覽:21日期:2022-07-07 11:28:39

如下所示:

Wed, 23 Oct 2019 21:12:01 +0800

Wed, 23 Oct 2019 06:08:37 +0000 (GMT)

Fri, 11 Oct 2019 12:42:07 +0800 (CST)

Wed, 23 Oct 2019 06:08:37 +0000 (UTC)

幾種不同的日期格式化方式,不同的時(shí)區(qū)時(shí)間轉(zhuǎn)換成北京時(shí)間,也就是東八區(qū)的時(shí)間,注意的是后面的時(shí)區(qū)表示方式,

def getTimeStamp(self, date): result = re.search(r'[-+]d+', date) if result: time_area = result.group() symbol = time_area[0] offset = int(time_area[1]) + int(time_area[2]) if symbol == '+':format_str = ’%a, %d %b %Y %H:%M:%S ’+ time_areaif 'UTC' in date: format_str = ’%a, %d %b %Y %H:%M:%S ’+ time_area+ ’ (UTC)’if 'GMT' in date: format_str = ’%a, %d %b %Y %H:%M:%S ’ + time_area + ’ (GMT)’if 'CST' in date: format_str = ’%a, %d %b %Y %H:%M:%S ’ + time_area + ’ (CST)’utcdatetime = time.strptime(date, format_str)tempsTime = time.mktime(utcdatetime)tempsTime = datetime.datetime.fromtimestamp(tempsTime)if offset > 8: offset = offset -8tempsTime = tempsTime + datetime.timedelta(hours=offset)localtimestamp = tempsTime.strftime('%Y-%m-%d') else:format_str = ’%a, %d %b %Y %H:%M:%S ’ + time_areautcdatetime = time.strptime(date, format_str)tempsTime = time.mktime(utcdatetime)tempsTime = datetime.datetime.fromtimestamp(tempsTime)tempsTime = tempsTime + datetime.timedelta(hours=(offset + 8))localtimestamp = tempsTime.strftime('%Y-%m-%d') return localtimestamp

補(bǔ)充知識(shí):Python處理帶timezone的datetime類型

在存儲(chǔ)時(shí)間類型到數(shù)據(jù)庫(kù)的時(shí)候,通常使用DateTime類型。使用DateTime類型就會(huì)遇到時(shí)區(qū)timezone的問題。為了能夠處理timezone, 推薦存數(shù)據(jù)庫(kù)的使用存入的是基于UTC的時(shí)間日期,在本地取用的時(shí)候在轉(zhuǎn)成本地時(shí)間。

Python定義了抽象類tzinfo, 這個(gè)class不能直接使用。3.x版本(至少3.4, 3.5)定義了timezone class。但是這個(gè)timezone還是不如第三方pytz類好用。

還有一個(gè)問題就是如何得到本機(jī)的timezone。在time class里面可以得到一個(gè)time.timezone, 是一個(gè)基于秒的offset值。注意這個(gè)time不是datetime.time, 就是time,用于os相關(guān)的時(shí)間信息。不是很好用,推薦tzlocal庫(kù)。

安裝pytz和tzlocal

使用pip安裝就可以了。

pip install pytz

pip install tzlocal

如何使用

得到當(dāng)前時(shí)間,用于數(shù)據(jù)的存儲(chǔ)

from datetime import datetime

t = datetime.utcnow()

已知本地時(shí)間,需要轉(zhuǎn)成UTC時(shí)間用于存儲(chǔ)

import pytzfrom tzlocal import get_localzonetz = get_localzone() #獲得本地timezoneutc = pytz.utc #獲得UTC timezonedt = datetime(2016, 6, 12, 5, 0, 0)loc_dt = tz.localize(dt) #將DateTime數(shù)據(jù)貼上timezoneutc_dt = loc_dt.astimezone(utc) #轉(zhuǎn)換到新的timezone

已知UTC時(shí)間,轉(zhuǎn)本地

import pytzfrom tzlocal import get_localzoneutc = pytz.utctz = get_localzone()t = datetime(x,x,x,x,x,x)utc_dt = utc.localize(t)loc_dt = utc_dt.astimezone(tz)

以上這篇python 帶時(shí)區(qū)的日期格式化操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 平远县| 莆田市| 大兴区| 同江市| 车险| 手游| 凭祥市| 株洲县| 金堂县| 北票市| 达孜县| 潜山县| 云阳县| 灵璧县| 青海省| 嘉定区| 玉溪市| 介休市| 南昌市| 上林县| 镇康县| 东乡族自治县| 秭归县| 三原县| 屯门区| 大化| 洛川县| 旬阳县| 峨眉山市| 井研县| 枣强县| 琼海市| 宜宾县| 桐柏县| 洪雅县| 通化市| 皮山县| 昆山市| 柯坪县| 嵊泗县| 徐闻县|