如何在 Python 中使用带有毫秒的 strptime

您所在的位置:网站首页 毫秒的时间格式 如何在 Python 中使用带有毫秒的 strptime

如何在 Python 中使用带有毫秒的 strptime

2024-06-29 14:16| 来源: 网络整理| 查看: 265

如何在 Python 中使用带有毫秒的 strptime

处理日期和时间是编程中的一项常见任务,Python 提供了多个模块来处理此类操作。日期时间模块是用于操作日期和时间的最常用模块之一。它提供了各种函数和类,包括 strptime() 方法,它允许我们将日期和时间的字符串表示形式转换为日期时间对象。在本文中,我们将借助详细示例了解如何在 Python 中使用带有毫秒的 strptime。

理解 strptime()

datetime 模块中的 strptime() 方法用于将日期和时间的字符串表示形式解析为 datetime 对象。它有两个参数:第一个参数是要解析的字符串,第二个参数是格式字符串,指定输入字符串的预期格式。格式字符串由表示日期和时间的不同部分的格式代码组成。

默认情况下,strptime()方法不支持解析毫秒。毫秒的可用格式代码是有限的,并且它们与通常用于微秒的 %f 格式代码不对应。但是,我们可以通过结合使用字符串切片和整数转换来克服此限制。

使用带有毫秒的 strptime:

要使用带有毫秒的 strptime() ,我们需要遵循两个步骤:

使用 strptime() 在没有毫秒的情况下解析字符串。

单独提取毫秒并将它们添加到解析的日期时间对象中。

算法

导入日期时间模块。

定义表示日期和时间(以毫秒为单位)的输入字符串。

定义不带毫秒的格式字符串。

使用 strptime() 通过从输入字符串中排除最后四个字符(毫秒)来解析没有毫秒的字符串。

从输入字符串中单独提取毫秒。

将解析的日期时间对象中的微秒替换为提取的毫秒,并将其乘以 1000。

打印或使用解析的日期时间对象(以毫秒为单位)。

示例 1:解析包含毫秒的日期和时间字符串

假设我们有一个格式为“2023-05-29 12:34:56.789”的日期和时间字符串,我们希望将其解析为带有毫秒的日期时间对象。我们将在下面的示例中实现这一点。

在下面的示例中,我们首先使用 strptime() 解析没有毫秒的字符串,从输入字符串中排除最后四个字符(毫秒)。然后,我们从输入字符串中单独提取毫秒,并将它们乘以 1000,将其转换为微秒。最后,我们用提取的毫秒替换解析的日期时间对象中的微秒。

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”的时间字符串,并且我们希望将其解析为带有毫秒的日期时间对象。我们将在下面的示例中实现这一点。

在下面的示例中,我们遵循与之前相同的两步过程。我们使用 strptime() 通过从输入字符串中排除最后四个字符(毫秒)来解析没有毫秒的字符串。然后,我们单独提取毫秒并将它们添加到解析的日期时间对象中。

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 本身不支持毫秒,但我们可以通过使用字符串切片和整数转换来克服此限制。通过解析不含毫秒的字符串,然后分别提取并添加毫秒的两步过程,我们可以实现对含毫秒的日期和时间字符串的精确解析。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3