Python 中如何使用 strptime 處理毫秒
在程式設計中,處理日期和時間是一項常見的任務,Python 提供了多個模組來處理此類操作。datetime 模組是用於操作日期和時間的常用模組之一。它提供了各種函式和類,包括 strptime() 方法,該方法允許我們將日期和時間的字串表示形式轉換為 datetime 物件。在本文中,我們將藉助詳細示例瞭解如何在 Python 中使用 strptime 處理毫秒。
瞭解 strptime()
datetime 模組中的 strptime() 方法用於將日期和時間的字串表示形式解析為 datetime 物件。它接受兩個引數:第一個引數是要解析的字串,第二個引數是格式字串,用於指定輸入字串的預期格式。格式字串由表示日期和時間不同部分的格式程式碼組成。
預設情況下,strptime() 方法不支援解析毫秒。可用的毫秒格式程式碼有限,並且不對應於用於微秒的常用 %f 格式程式碼。但是,我們可以透過結合使用字串切片和整數轉換來克服此限制。
使用 strptime 處理毫秒
要使用 strptime() 處理毫秒,我們需要遵循一個兩步過程
使用 strptime() 解析不帶毫秒的字串。
單獨提取毫秒並將其新增到已解析的 datetime 物件中。
演算法
匯入 datetime 模組。
定義表示帶毫秒的日期和時間的輸入字串。
定義不帶毫秒的格式字串。
透過從輸入字串中排除最後四個字元(毫秒),使用 strptime() 解析不帶毫秒的字串。
從輸入字串中單獨提取毫秒。
透過將提取的毫秒乘以 1000,用提取的毫秒替換已解析的 datetime 物件中的微秒。
列印或使用帶毫秒的已解析 datetime 物件。
示例 1:解析帶毫秒的日期和時間字串
假設我們有一個格式為 '2023-05-29 12:34:56.789' 的日期和時間字串,並且我們希望將其解析為帶毫秒的 datetime 物件。我們將在下面的示例中實現這一點。
在下面的示例中,我們首先透過從輸入字串中排除最後四個字元(毫秒),使用 strptime() 解析不帶毫秒的字串。然後,我們從輸入字串中單獨提取毫秒,並將其乘以 1000 以將其轉換為微秒。最後,我們用提取的毫秒替換已解析的 datetime 物件中的微秒。
from datetime import datetime input_string = '2023-05-29 12:34:56.789' format_string = '%Y-%m-%d %H:%M:%S' # Step 1: Parse the string without milliseconds parsed_datetime = datetime.strptime(input_string[:-4], format_string) # Step 2: Extract milliseconds separately and add them to the parsed datetime object milliseconds = int(input_string[-3:]) parsed_datetime = parsed_datetime.replace(microsecond=milliseconds * 1000) print(parsed_datetime)
輸出
2023-05-29 12:34:56.789000
示例 2:解析帶毫秒的時間字串
讓我們考慮一個場景,其中我們有一個格式為 '12:34:56.789' 的時間字串,並且我們希望將其解析為帶毫秒的 datetime 物件。我們將在下面的示例中實現這一點。
在下面的示例中,我們遵循與之前相同的兩步過程。我們透過從輸入字串中排除最後四個字元(毫秒),使用 strptime() 解析不帶毫秒的字串。然後,我們單獨提取毫秒並將其新增到已解析的 datetime 物件中。
from datetime import datetime input_string = '12:34:56.789' format_string = '%H:%M:%S' # Step 1: Parse the string without milliseconds parsed_datetime = datetime.strptime(input_string[:-4], format_string) # Step 2: Extract milliseconds separately and add them to the parsed datetime object milliseconds = int(input_string[-3:]) parsed_datetime = parsed_datetime.replace(microsecond=milliseconds * 1000) print(parsed_datetime)
輸出
1900-01-01 12:34:56.789000
結論
在本文中,我們討論瞭如何在 Python 中使用 strptime 處理毫秒。儘管 strptime 本身不支援毫秒,但我們可以透過使用字串切片和整數轉換來克服此限制。透過遵循解析不帶毫秒的字串,然後單獨提取和新增毫秒的兩步過程,我們可以實現對帶毫秒的日期和時間字串的精確解析。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP