问题的提出和解决方案概述
在这篇文章中,你将学习如何使用Python将[纪元时间]转换为日期时间表示法。
1970年1月1日,[大纪元时间],又称UNIX系统的时间0,开始成为历史上一个值得记住的日期。这个日期是有意义的,不仅是由于这个事件,还因为它重新定义了日期的计算方式
为了增加趣味性,我们将计算出从1970年1月1日开始的大[纪元时间]到1985年1月1日,即 英国[第一个移动电话]由Ernie Wise打给Vodafone的时间,所经过的时间。然后,这将被转换为日期时间表示。
问题是:我们如何编写代码,将一个大纪元日期转换为一个日期时间表示?
我们可以通过以下方法之一来完成这项任务。
- 方法1:使用
datetime.fromtimestamp() - 方法2:使用
time.localtime() - 方法3:使用
datetime.utcfromtimestamp() - 方法4:使用
time.localtime()和time.strftime()
方法1:使用fromtimestamp()
这个方法导入 [datetime](https://docs.python.org/3/library/datetime.html)库并调用相关的 datetime.fromtimestamp()函数,将[大纪元时间]转换为本地日期时间表示。
为了无误地运行这段代码,请安装所需的库。
import datetime
epoch_time = 473398200
date_conv = datetime.datetime.fromtimestamp(epoch_time)
print(date_conv.strftime('%d-%m-%Y'))
以上,导入了 datetime库。这样就可以把大纪元时间的整数转换为可读的本地 日期时间格式。
下面一行声明了一个Epoch Time整数,并将其保存到epoch_time 。
接下来,突出显示的一行将大纪元时间转换为本地 日期时间表示,并将其保存到date_conv 。如果在这时输出到终端,将显示如下。
1985-01-01 00:00:00 |
最后,date_conv ,用以下方法转换为一个字符串 strftime()转换为字符串,并将格式化的日期输出到终端。
01-01-1985 |
方法2:使用time.localtime()
这个方法导入了 [time](https://blog.finxter.com/category/python-time/)库,并调用相关的 time.localtime()函数来将大纪元时间转换为本地 日期时间。
import time
epoch_time = 473398200
date_conv = time.localtime(epoch_time)
print(date_conv)
以上,导入了 [time](https://blog.finxter.com/category/python-time/) 库。这样就可以把大纪元时间转换为可读的本地日期时间格式。
下面一行声明了一个整数的大纪元时间,并将其保存到epoch_time 。
接下来,突出显示的一行将大纪元时间转换为本地 日期时间表示法,并将其作为一个Tuple保存到date_conv ,如下所示。
time.struct_time(tm_year=1985, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=1, tm_isdst=0) |
适当的元素将需要被访问以格式化一个日期或时间。在这个例子中,我们将构建日期。
print(f'0{date_conv[1]}-0{date_conv[2]}-{date_conv[0]}')
输出结果如下:
01-01-1985 |
方法3:使用datetime.utcfromtimestamp
这个方法导入了 [datetime](https://docs.python.org/3/library/datetime.html) 库并调用相关的 datetime.utcfromtimestamp()函数,将大纪元时间转换为UTC日期时间表示。
import datetime
epoch_time = 473398200
date_conv = datetime.datetime.utcfromtimestamp(epoch_time).strftime('%Y-%m-%d %H:%M:%S')
print(date_conv)
以上,导入 datetime库。这允许将一个整数的大纪元时间转换为可读的UTC 日期时间格式。
下面一行声明了一个大纪元时间的整数,并将其保存到epoch_time 。
接下来,突出显示的一行完成了以下工作。
- 将大纪元时间转换为UTC日期格式。
- 转换为一个日期字符串(
strftime())转换成所述格式。 - 将结果保存到
date_conv。
输出被发送到终端。
1985-01-01 03:30:00 |
注意: 世界时间(UTC)是主要的标准24小时时间时钟,世界上以此来管理时钟和时间。
方法4:使用time.localtime()和time.strftime()
这个方法将 [time](https://blog.finxter.com/category/python-time/)库,并与 time.localtime()和 time.strftime()函数,将大纪元时间转换为本地 日期时间表示。
import time
epoch_time = 473398200
date_conv = time.strftime('%c', time.localtime(epoch_time))
print('Formatted Date:', date_conv)
以上,导入了 [time](https://blog.finxter.com/category/python-time/) 库。这样就可以把大纪元时间转换为可读的本地 日期时间格式。
下面一行声明了一个大纪元时间的整数,并将其保存到epoch_time 。
接下来,突出显示的一行将大纪元时间转换为本地日期时间表示,转换为字符串(strftime() )格式,并将其保存到date_conv 。
该输出被发送到终端。
Formatted Date: Tue Jan 1 00:00:00 1985 |
总结
这4种将纪元时间转换为日期时间的方法应该给你足够的信息来选择最适合你编码要求的方法。
祝您好运,编码愉快!