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

在 Python 中解析 ISO 8601 日期的詳細過程

 更新時間:2023年08月25日 09:42:29   作者:跡憶客  
這篇文章主要介紹了在 Python 中解析 ISO 8601 日期,我們將討論典型的 ISO 8601 日期的結構,并向您展示如何將典型的 DateTime 對象解析為可以在所有地方使用的標準化 DateTime,需要的朋友可以參考下

日期對每個人都很重要,對我們使用的許多應用程序也至關重要。 作為一名開發(fā)人員,可能會對存在的不同時區(qū)或時間對象以及圍繞它們工作感到困惑。

然而,通常存在使工作更容易的標準,這就是本文所需要的。 此外,我們將討論典型的 ISO 8601 日期的結構,并向您展示如何將典型的 DateTime 對象解析為可以在所有地方使用的標準化 DateTime。

ISO 8601 日期的結構

ISO(國際標準化組織)致力于為其成員國在不同領域創(chuàng)建標準化,這些領域通常包括技術和非技術領域。 工程等領域是他們優(yōu)先考慮的部分。

眾多標準化包括 ISO 8601 日期時間,以月、日、小時、分鐘、秒和毫秒表示。 它在全球范圍內用作任何數(shù)據(jù)的日期時間標準,并且是基于時間的,有助于防止誤傳和錯誤。

如果您要構建一個在全球范圍內使用的 Python 應用程序,了解 ISO 8601 DateTime 對象很重要,解析它可能是一項要求。

ISO 8601 日期時間用從左邊開始的年份表示,以毫秒?yún)?shù)結束,并且通常與從 T 到 Z 的其他計算機字符結合使用。

2022-08-10 17:00:00.000

上面的 ISO DateTime 對象代表 2022 年 8 月 11 日下午 5 點。 在當?shù)貢r區(qū)內。

重要的是聲明 ISO 8601 DateTime 字符串需要日期部分,但時間部分是可選的。 它們是 ISO 8601 的不同變體,但以上將是本文的參考。

使用 strptime() 和 strtime() 在 Python 中解析 ISO 8601 日期

Python 預裝了對不同操作有用的不同模塊,其中一個預裝模塊是 datetime,它有助于日期和時間操作。 使用 datetime 模塊,您可以獲得 datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]]) 值。

now() 方法幫助我們獲取和開發(fā)當前日期和時間,并提供典型的 DateTime 對象,我們可以操作或解析該對象以獲取我們需要的任何信息。

from datetime import datetime
todaysDate = datetime.now()
print(todaysDate)

輸出:

2022-09-28 06:55:56.832983

此外, today() 方法可用于實現(xiàn)相同的值。 雖然, now() 方法優(yōu)于 today() 方法。

AnoTodaysDate = datetime.today()

輸出:

2022-09-29 10:48:43.311880

之前,我們將典型的 Python DateTime 對象解析為標準化的 ISO 6801 DateTime。 讓我們通過使用 Python DateTime 對象創(chuàng)建 ISO 6801 DateTime 來扭轉這一局面。

為此,我們需要 strftime() 方法,它可以幫助我們將 DateTime 對象轉換為其字符串表示形式——這次是 ISO 6801 DateTime 字符串。

from datetime import datetime
todaysDate = datetime.now()
todaysDateInISO = todaysDate.strftime('%Y-%m-%dT%H:%M:%S.%f%z')
print(todaysDateInISO)

輸出:

2022-09-29T11:08:29.413183

todaysDate 綁定保存當前日期和時間的 Python DateTime 對象,然后我們將綁定作為參數(shù)傳遞給 strftime() 方法以創(chuàng)建等效的 ISO 8601 DateTime 字符串。

有了這些,我們如何將 ISO 8601 DateTime 字符串轉換為 Python DateTime 對象? 我們需要一個與 strftime() 方法相反的方法,即 strptime()。

此方法從 DateTime 字符串創(chuàng)建 DateTime 對象。

因此,我們將傳遞一個 ISO 6801 DateTime 字符串作為 strptime() 的第一個參數(shù)和另一個定義所需日期格式的參數(shù) - Python DateTime 對象 %Y-%m-%dT%H:%M:%SZ .

parsedDate = datetime.strptime("2022-03-04T21:08:12Z", "%Y-%m-%dT%H:%M:%SZ")
print(parsedDate)

輸出:

2022-03-04 21:08:12

Y-%m-%dT%H:%M:%SZ 日期格式使用 Python DateTime 對象中指定的格式代碼處理年、月、日、小時、分鐘和秒。

使用 fromisoformat() 在 Python 中解析 ISO 8601 日期

類似于 strftime() strptime() 方法,有專門的方法可以創(chuàng)建 ISO 6801 DateTime 字符串或將它們轉換為 Python DateTime 對象。 isoformat() 方法有助于返回根據(jù) ISO 格式化的時間,該時間以 YYYY-MM-DD HH:MM:SS.mmmmmm 格式處理。

更重要的是, fromisoformat() 方法采用 ISO 8601 DateTime 字符串并返回等效的 Python DateTime 對象。

要從 Python DateTime 對象創(chuàng)建 ISO 8601,您可以先使用 now() 方法創(chuàng)建 DateTime 對象,然后使用 isoformat() 獲取結果的 ISO 8601 屬性(格式)。

from datetime import datetime
todaysDate = datetime.now()
todaysDateInISO = todaysDate.isoformat()
print(todaysDateInISO)

輸出:

2022-09-28T07:46:13.350585

結果通常包含日期和時間之間的分隔符。 在這里,它是 T 并且可以更改。 您可以通過傳遞參數(shù)來更改分隔符。

todaysDateInISO = todaysDate.isoformat("$")
print(todaysDateInISO)

輸出:

2022-09-28$07:48:11.060212

現(xiàn)在是問題的關鍵,我們可以將 ISO 8601 DateTime 字符串解析為典型的 Python DateTime 對象。

parsedDate = datetime.fromisoformat(todaysDateInISO)
print(parsedDate)

輸出:

2022-09-29 14:38:17.928655

使用 dateutil 在 Python 中解析 ISO 8601 日期

dateutil Python 模塊是一個第三方模塊,可用于擴展可通過內置 datetime 模塊訪問的功能。

要安裝它,您可以使用 pip 命令:

pip install python-dateutil

輸出:

Collecting python-dateutil
  Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 kB 506.3 kB/s eta 0:00:00
Collecting six>=1.5
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: six, python-dateutil
Successfully installed python-dateutil-2.8.2 six-1.16.0

此外,您還可以使用另一個名為pytz 的第三方模塊引入時區(qū)功能,該模塊可以使用pip 命令安裝。

pip install pytz

這些庫可以輕松地創(chuàng)建基于時區(qū)的 ISO 8601 日期格式,并將 ISO 8601 DateTime 字符串解析為典型的 Python DateTime 對象。

例如,我們將使用美國/東部時區(qū)并使用 timezone() 方法、 now() 方法和 isoformat() 方法創(chuàng)建一個 ISO 8601 DateTime 字符串。

from datetime import datetime
import pytz
usEasternDate = datetime.now(pytz.timezone('US/Eastern'))
print(usEasternDate)
usEasternDateISO = usEasternDate.isoformat()
print(usEasternDateISO)

輸出:

2022-09-29 10:01:17.654150-04:00
2022-09-29T10:01:17.654150-04:00

然后將 ISO 8601 DateTime 字符串解析為 Python DateTime 對象,我們可以使用 parse() 方法,并將 ISO 日期作為其參數(shù)傳遞。

parsedDate = parser.parse(usEasternDateISO)
print(parsedDate)

輸出:

2022-09-29 10:01:17.654150-04:00

到此這篇關于在 Python 中解析 ISO 8601 日期的文章就介紹到這了,更多相關Python ISO 8601 日期內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論