蟒蛇 |時區轉換

| | | | | | | |

Python 日期和時間元素可以是樸素的,也可以是專心的。如果 datetime 元素有 tzinfo,此時它就知道了。別的,日期和時間是幼稚的。要明確 datetime 對象的時區,請定義一個抽象基類 tzinfo。在任何情況下,Python 日期時間庫只是簡單地描述了 tzinfo 的概念基類,並將其留給其他人來實際實現 tzinfo 的創建。這就是 tz dateutil 模塊的用武之地 —它提供了從您的操作系統時區信息切換上游時區所需的一切。

設置:

使用 pip 或 easy_install dateutil 進行安裝。確保操作系統有時區數據。

在 Linux 上,這通常位於 /usr/share/zoneinfo 中,而 Ubuntu 包稱為 tzdata。如果/usr/share/zoneinfo 中的文件和目錄的數量,比如美洲/和歐洲/,那麼就可以繼續了。

獲取 UTC 對象 tzinfo —通過調用 tz.tzutc()

dateutil import tz

tz.tzutc()

tzutc()

調用utcoffset() 方法帶有一個UTC 日期/時間對象。


import datetime

tz.tzutc()。 utcoffset(datetime.datetime.utcnow())

datetime.timedelta(0) 

把路徑傳給gettz() 中的 file time zone 以獲取其他時區的 tzinfo 對象。


tz.gettz ( `美國/太平洋` )

< /table>

tzfile(`/usr/share/zoneinfo/US/Pacific`) 

tz.gettz(`歐洲/巴黎`) code>

tzfile(`/usr/share/zoneinfo/Europe/Paris` )

tz.gettz ( `美國/太平洋` )。 utcoffset(datetime.datetime.utcnow())

datetime.timedelta(-1, 61200) 

改變UTC 到 UTC 以外的時間和日期元素,您需要記住時區。如果您嘗試將可信時間更改為 UTC,您將收到 ValueError 異常。要記住簡單的 datetime 時區,您基本上可以使用所需的 tzinfo 調用 replace () 策略。一旦 datetime 元素具有 tzinfo,就可以通過調用 astimezone () 方法和 tz.tzutc () 來更改 UTC。

abc = tz.gettz( `US / Pacific` )

dat = datetime.datetime ( 2010 , 9 , 25 , 10 , 36 )

dat.tzinfo
dat.astimezone (tz. tzutc())

Traceback(最近一次調用最後一次):文件“/u sr/lib/python2.6/doctest.py",第 1228 行,在 __run compileflags,1) 在 test.globs 文件中"",第 1 行,在 dat.astimezone (tz.tzutc ()) ValueError: astimezone () 不能應用於一個簡單的日期時間

dat.replace (tzinfo = abc)

datetime.datetime(2010,9,25,10,36,tzinfo = tzfile(`/usr/share/zoneinfo/US/Pacific`)) 

一切都在工作的背後 —

  • tzutc 和tzfile 元素是tzinfo 的兩個子類。
  • 考慮到所有因素,他們知道更改時區的正確 UTC 偏移量(0 代表 tzutc)。
  • tzfile 元素了解如何掃描工作結構 zoneinfo 文檔以獲取基本配重信息。
  • 元素 nta datetime 的 replace() 策略做了什麼名字 —它取代了質量。
  • 當一個日期時間有一個 tzinfo 時,astimezone() 策略很可能會使用 UTC 平衡來考慮時間,然後用一個新的 tzinfo 替換當前的 tzinfo。

代碼:將 tzinfos 關鍵字參數傳遞給 dateutil 解析器以檢測無法識別的時區


parser.parse ( `2010 年 8 月 4 日,星期三,下午 6:30 (CDT)` ,

模糊 = )

datetime. datetime (2010, 8, 4, 18, 30) 

tzinfos = { `CDT` : tz.gettz ( ` 美國/中部` )}

parser.parse ( `2010 年 8 月 4 日,星期三,下午 6:30 (CDT)` ,

模糊 = ,tzinfos = tzinfos)

datetime.datetime (2010, 8, 4, 18, 30, tzinfo = tzfile (`/usr/share/zoneinfo/US/Central`)) 

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method