如何在Python中将时间戳字符串转换为日期时间对象?
在本文中,我们将展示如何在Python中将时间戳字符串转换为 **日期时间 ** 对象。以下是实现此任务的各种方法。
- 使用datetime.fromtimestamp()函数
-
使用datetime.fromtimestamp()和strftime
-
使用datetime.strptime()
-
将时间戳转换为具有文本的格式代码的日期时间对象
使用datetime.fromtimestamp()函数
要从UNIX时间戳获得日期,请使用 datetime 模块的 fromtimestamp 函数。此函数接受时间戳作为输入,并返回对应于该时间戳的日期时间对象。
语法
fromtimestamp(timestamp, tz=None)
算法(步骤)
以下是要执行所需任务的 算法/步骤
- 使用import关键字从datetime模块导入 datetime
-
创建一个变量来存储输入的时间戳字符串
-
使用 datetime.fromtimestamp() 函数将输入时间戳转换为日期时间对象。
-
打印结果日期时间对象。
-
使用 type() 函数(返回对象的数据类型)来打印结果日期时间对象的类型。
示例
以下程序使用 datetime.fromtimestamp() 函数将时间戳转换为 日期时间对象。
# 从datetime模块导入datetime
from datetime import datetime
# 输入时间戳
timestamp_string = 1345612072
#将时间戳转换为日期时间对象
datetime_object = datetime.fromtimestamp(timestamp_string)
#打印结果日期时间对象
print("结果日期时间对象:" , datetime_object)
#打印结果日期时间对象的类型
print("结果日期时间对象的类型:" ,type(datetime_object))
输出
运行上面的程序将生成以下输出-
结果日期时间对象: 2012年08月22日 05:07:52
日期时间对象的类型: <class'datetime.datetime">
使用datetime.fromtimestamp()和strftime
算法(步骤)
以下是执行所需任务的算法/操作的步骤 –
- 使用 datetime.fromtimestamp() 函数将时间戳字符串转换为日期时间对象,并使用 strftime() 方法格式化字符串(返回表示基于格式代码的日期时间对象的字符串)。
strftime(format)
- 打印结果日期时间对象。
示例
以下程序使用 datetime.fromtimestamp() 函数将时间戳字符串转换为日期时间对象,并使用 strftime 进行格式化 –
# 从datetime模块中导入datetime
from datetime import datetime
# 输入时间戳
timestamp_string = 1345612072
# 将时间戳字符串转换为datetime对象并格式化它
datetime_object = datetime.fromtimestamp(timestamp_string).strftime('%d-%m-%y')
# 打印结果datetime对象
print("结果datetime对象:",datetime_object)
# 打印结果datetime对象的类型
print("datetime对象的类型:", type(datetime_object))
输出
在执行上述程序后,将生成以下输出 −
结果datetime对象: 22-08-12
datetime对象的类型: <class 'str'>
strftime函数()
**strftime ** 函数返回一个格式化的日期和时间。它接受一个格式字符串,您可以使用它来获取所需的结果。以下是它支持的指令。
| 指令 | 意义 |
|---|---|
| %a | 缩写的星期几名称 |
| %A | 完整的星期几名称 |
| %b | 缩写的月份名称。 |
| %B | 完整的月份名称。 |
| %c | 适当的日期和时间表示。 |
| %d | 月份中的日期,以十进制数表示[01,31]。 |
| %H | 小时(24小时制)的十进制数表示[00,23]。 |
| %I | 小时(12小时制)的十进制数表示[01,12]。 |
| %m | 月份的十进制数表示[01,12]。 |
| %M | 分钟的十进制数表示[00,59]。 |
| %p | AM或PM的本地等效项。 |
| %S | 秒钟的十进制数表示[00,61]。 |
| %U | 一年中的周数(周日作为一周的第一天),以十进制数表示[00,53]。在第一个周日之前的新年中的所有日子都被视为第0周。 |
| %w | 星期几的十进制数表示[0(星期日),6]。 |
| %W | 一年中的周数(周一作为一周的第一天),以十进制数表示[00,53]。在第一个周一之前的新年中的所有日子都被视为第0周。 |
| %x | 适当的日期表示。 |
| %X | 适当的时间表示。 |
| %y | 不带世纪的年份,以十进制数表示[00,99]。 |
| %Y | 带有世纪的年份,以十进制数表示。 |
| %Z | 时区名称(如果不存在,则无字符)。 |
| %% | 文本”%”。 |
使用datetime.strptime()
算法(步骤)
以下是执行所需任务的算法/步骤 −
- 创建一个变量来存储格式。
-
使用 datetime.strptime() 函数(将字符串格式的时间戳格式化为日期时间对象)通过向其传递输入时间戳和格式作为参数来将时间戳转换为日期时间对象。
-
打印结果的日期时间对象。
示例
下面的程序将时间戳转换为日期时间对象并使用 datetime.strptime() 函数格式化它 –
# 从datetime模块导入datetime
from datetime import datetime
# 输入时间戳字符串
timestamp_string = '2013-06-09T11::12::40.356237'
# 输入格式
format = '%Y-%m-%dT%H :: %M :: %S.%f'
# 将时间戳字符串转换为日期时间对象
datetime_object = datetime.strptime(timestamp_string, format)
# 打印结果的日期时间对象
print(datetime_object)
# 打印结果日期时间对象的类型
print(type(datetime_object))
输出
执行上述程序将生成以下输出 –
2013年6月9日11时12分40.356237秒
<class 'datetime.datetime'>
使用混合文本的格式代码将时间戳转换为日期时间对象
示例
下面的程序将输入的混合文本字符串中的时间戳转换为日期时间对象并使用 datetime.strptime() 函数 –
# 从datetime模块导入datetime
from datetime import datetime
# 输入文本字符串
textString = "我出生于2020年3月14日下午4点"
# 将输入混合文本字符串中的时间戳转换为日期时间对象并格式化它
datetime_object = datetime.strptime(textString, '我出生在%B月%dth年%I时%p')
# 打印结果的日期时间对象
print("结果的日期时间对象:",datetime_object)
# 打印结果日期时间对象的类型
print("日期时间对象的类型:", type(datetime_object))
输出
执行上述程序将生成以下输出 –
结果的日期时间对象:2020年3月14日下午4点
日期时间对象的类型:
结论
在本文中,我们学习了Python中将给定的时间戳转换为 DateTime 对象的几种方法。我们还学习了如何将包含混合文本的时间戳转换为 DateTime 对象。
极客教程