中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python 實現帶時區日期格式化

發布時間:2020-10-26 14:34:40 來源:億速云 閱讀:503 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關python 實現帶時區日期格式化,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

如下所示:

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)

幾種不同的日期格式化方式,不同的時區時間轉換成北京時間,也就是東八區的時間,注意的是后面的時區表示方式,

  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_area
        if "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 -8
        tempsTime = tempsTime + datetime.timedelta(hours=offset)
        localtimestamp = tempsTime.strftime("%Y-%m-%d")
      else:
        format_str = '%a, %d %b %Y %H:%M:%S ' + time_area
        utcdatetime = 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

補充知識:Python處理帶timezone的datetime類型

在存儲時間類型到數據庫的時候,通常使用DateTime類型。使用DateTime類型就會遇到時區timezone的問題。為了能夠處理timezone, 推薦存數據庫的使用存入的是基于UTC的時間日期,在本地取用的時候在轉成本地時間。

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

還有一個問題就是如何得到本機的timezone。在time class里面可以得到一個time.timezone, 是一個基于秒的offset值。注意這個time不是datetime.time, 就是time,用于os相關的時間信息。不是很好用,推薦tzlocal庫。

安裝pytz和tzlocal

使用pip安裝就可以了。

pip install pytz

pip install tzlocal

如何使用

得到當前時間,用于數據的存儲

from datetime import datetime

t = datetime.utcnow()

已知本地時間,需要轉成UTC時間用于存儲

import pytz
from tzlocal import get_localzone
tz = get_localzone()  #獲得本地timezone
utc = pytz.utc     #獲得UTC timezone
dt = datetime(2016, 6, 12, 5, 0, 0)
loc_dt = tz.localize(dt) #將DateTime數據貼上timezone
utc_dt = loc_dt.astimezone(utc)  #轉換到新的timezone

已知UTC時間,轉本地

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

看完上述內容,你們對python 實現帶時區日期格式化有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

聂荣县| 高碑店市| 松滋市| 法库县| 巴彦县| 绩溪县| 广德县| 绥棱县| 乡宁县| 宣威市| 平远县| 四平市| 长武县| 方城县| 青铜峡市| 翁源县| 关岭| 大安市| 东乌珠穆沁旗| 绥宁县| 寻甸| 安国市| 兰溪市| 耒阳市| 枣阳市| 禹州市| 云梦县| 应城市| 祁阳县| 亳州市| 巴彦县| 清原| 绵阳市| 恩平市| 磐安县| 滨海县| 香格里拉县| 武定县| 芜湖市| 宜川县| 尚义县|