如何在Python中将Unix时间戳字符串转换为可读日期?

如何在Python中将Unix时间戳字符串转换为可读日期?

在编程中,我们经常需要将Unix时间戳(从1970年1月1日开始的秒数)转换为可读日期,比如将时间戳字符串“1628134247”转换为“2021-08-05 15:04:07”的形式。在Python中,有多种方式可以实现这个目的。本文将介绍其中的几种常用方法。

更多Python文章,请阅读:Python 教程

方法一:使用time模块

Python的time模块提供了很多时间相关的函数,包括将Unix时间戳转换为可读日期的函数。具体步骤如下:

  1. 导入time模块。
  2. 将时间戳字符串转换为整型,并传递给time.gmtime()函数,得到一个struct_time对象。
  3. 调用time.strftime()函数,将struct_time对象转换为可读日期的字符串。

示例代码:

import time

timestamp_str = "1628134247"
timestamp_int = int(timestamp_str)
struct_time = time.gmtime(timestamp_int)
date_str = time.strftime("%Y-%m-%d %H:%M:%S", struct_time)
print(date_str)

输出结果:

2021-08-05 07:04:07

这里需要注意的一点是,time.gmtime()返回的struct_time对象是使用UTC时间表示的,可能与你本地的时区存在偏差。如果要获得本地时区的时间,可以使用time.localtime()函数代替。

方法二:使用datetime模块

Python的datetime模块也提供了将Unix时间戳转换为可读日期的函数。具体步骤如下:

  1. 导入datetime模块。
  2. 将时间戳字符串转换为datetime对象。

示例代码:

import datetime

timestamp_str = "1628134247"
timestamp_int = int(timestamp_str)
datetime_obj = datetime.datetime.fromtimestamp(timestamp_int)
date_str = datetime_obj.strftime("%Y-%m-%d %H:%M:%S")
print(date_str)

输出结果:

2021-08-05 15:04:07

需要注意的一点是,datetime.fromtimestamp()默认使用本地时区转换时间戳。如果要使用UTC时间,可以使用datetime.utcfromtimestamp()函数代替。

方法三:使用arrow模块

arrow是一个功能强大的日期时间处理库,可以轻松处理日期时间字符串、Unix时间戳等各种格式。示例代码如下:

  1. 安装arrow模块(使用pip install arrow命令)。
  2. 导入arrow模块。
  3. 使用arrow.get()函数,将时间戳字符串转换为Arrow对象。
  4. 调用Arrow对象的format()方法,将日期时间格式化为字符串。

示例代码:

import arrow

timestamp_str = "1628134247"
arrow_obj = arrow.get(int(timestamp_str))
date_str = arrow_obj.format("YYYY-MM-DD HH:mm:ss")
print(date_str)

输出结果:

2021-08-05 07:04:07

需要注意的一点是,arrow.get()默认使用本地时区,如果要使用UTC时间,可以使用arrow.get(int(timestamp_str)).to(‘utc’)函数代替。

结论

本文介绍了在Python中将Unix时间戳字符串转换为可读日期的三种常用方法,分别使用了time、datetime和arrow模块。不同的方法适用于不同的场景,读者可以根据自己的需求选择最合适的方法。同时建议读者掌握这几种方法的原理,以便在实际开发中灵活应用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程