📅  最后修改于: 2023-12-03 15:23:26.772000             🧑  作者: Mango
在计算机编程中,时间通常以Unix时间戳或称为纪元(Epoch)的形式表示。Unix时间戳是从1970年1月1日00:00:00 UTC开始的秒数,这是计算机领域中广泛使用的日期和时间格式之一。
如果需要将Unix时间戳转换为日期时间格式,Python提供了许多内置模块和函数来完成此任务。以下是在Python中将纪元转换为日期时间的几种方法。
datetime
模块Python内置的datetime
模块包含了一些可以将Unix时间戳转换为日期时间的函数。其中,fromtimestamp()
函数可以将Unix时间戳转换为本地日期时间,示例代码如下:
import datetime
timestamp = 1629529287
datetime_obj = datetime.datetime.fromtimestamp(timestamp)
print(datetime_obj)
输出结果为:
2021-08-21 10:34:47
上述代码中,timestamp
变量存储了Unix时间戳,fromtimestamp()
函数将其转换为datetime
对象,并将结果存储在datetime_obj
变量中。
time
模块除了datetime
模块,Python还提供了time
模块,其中的strftime()
函数可以将Unix时间戳格式化为字符串。以下是示例代码:
import time
timestamp = 1629529287
datetime_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(timestamp))
print(datetime_str)
输出结果为:
2021-08-21 10:34:47
上述代码中,timestamp
变量存储了Unix时间戳,localtime()
函数将其转换为本地时间,并传递给strftime()
函数进行格式化。'%Y-%m-%d %H:%M:%S'
是格式化字符串,表示年份、月份、日期、小时、分钟和秒数。
除了Python内置的模块,还有一些第三方库可以用于将Unix时间戳转换为日期时间。其中,arrow
和pendulum
两个库相对常用。以下是这两个库的示例代码:
arrow
import arrow
timestamp = 1629529287
datetime_obj = arrow.get(timestamp).to('local')
print(datetime_obj)
输出结果为:
2021-08-21T10:34:47.000000-06:00
arrow
库提供了get()
函数可以将Unix时间戳转换为arrow
对象,并使用to()
函数设置时间格式。
pendulum
import pendulum
timestamp = 1629529287
datetime_obj = pendulum.from_timestamp(timestamp).to_datetime_string()
print(datetime_obj)
输出结果为:
2021-08-21 10:34:47
pendulum
库提供了from_timestamp()
函数将Unix时间戳转换为pendulum
对象,并使用to_datetime_string()
函数将日期时间格式化为字符串。
在Python中将Unix时间戳转换为日期时间可以使用内置的datetime
和time
模块,也可以使用第三方库,如arrow
和pendulum
。这里只列举了几种常见的方法,读者可以根据项目需求选择适合自己的方法。