如何將Python日期字串轉換為日期物件?


在這篇文章中,我們將日期字串轉換為日期物件。我們使用strptime() 方法將日期字串轉換為日期物件。

Strptime()

strptime() 方法以日期作為輸入,並將其轉換為日期物件。請注意,您不能將任何字串轉換為 datetime 物件。字串應採用特定格式。

語法

本節顯示 strptime() 方法的語法。

datetime.strptime(time_data, format_data)

其中:

time_date – 字串格式的時間。

format_date – 使用此函式從 time_data 轉換而成的 datetime 格式的資料(字串)。

一些重要的格式程式碼

格式程式碼 含義 示例
%a 縮寫的工作日名稱。 Mon, Tue……
%A 完整的工作日名稱。 Monday, Tuesday……
%w 工作日的小數值。 0,1,2……
%d 月份中的日期,為用零填充的十進位制數。 01,02,…,30
%-d 月份中的日期,為十進位制數。 1,2,…….,30
%b 縮寫的月份名稱。 Jan,Feb……
%B 完整的月份名稱。 January, February……
%m 月份,為用零填充的十進位制數。 01,02,03,……,12
%-m 月份,為十進位制數。 1,2,3,…….,12.
%y 不含世紀的年份,為用零填充的十進位制數。 00,01……
%Y 含世紀的年份,為十進位制數。 2001,2002……
%-y 不含世紀的年份,為十進位制數。 0,1,2,3……
%H 小時(24小時制),為用零填充的十進位制數。 01,02,…..,24
%-H 小時(24小時制),為十進位制數。 1,2,….,24.
%I 小時(12小時制),為用零填充的十進位制數。 01,02,….,12
%-I 小時(12小時制),為十進位制數。 1,2,…,12.
%p AM 或 PM AM,PM。
%M 分鐘,為用零填充的十進位制數。 00,01,02,….,59
%-M 分鐘,為十進位制數。 1,2,…..,59.
%S 秒,為用零填充的十進位制數。 01,02,….,59
%-S 秒,為十進位制數。 1,2,…..,59.
%f 微秒,為十進位制數,左側用零填充 000000,000001,….999999
%j 一年中的第幾天,為用零填充的十進位制數。 001, 002, ..., 366

示例1

在下面的示例中,我們使用 strptime 將字串日期轉換為 datetime 物件。我們還提取微秒、分鐘和秒。

from datetime import datetime time_data = "23/01/01 04:35:7.123" format_data = "%d/%m/%y %H:%M:%S.%f" date = datetime.strptime(time_data, format_data) print("Microsecond:",date.microsecond) print("Hour:",date.hour) print("Minute:",date.minute) print("Second:",date.second) print("The date is:",date)

輸出

接收到的輸出如下所示。

Microsecond: 123000
Hour: 4
Minute: 35
Second: 7
The date is: 2001-01-23 04:35:07.123000

示例2

在這個第一個示例中匯入了模組,並提供了輸入 DateTime 字串。現在我們使用 strptime() 方法獲取所需的格式,並使用 date()DateTime中檢索日期。

import datetime date_str = '29122017' # The date - 29 Dec 2017 format_str = '%d%m%Y' # The format datetime_obj = datetime.datetime.strptime(date_str, format_str) print(datetime_obj.date())

輸出

生成的輸出如下所示。

2017-12-29

更新於:2023年11月2日

9K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.