如何使用python函数进行时间格式转换?
时间是计算机程序中常见的数据类型之一,但是不同的程序语言中时间的表示方式会有所不同。在Python中,时间通常以字符串形式表示,并且有许多支持时间格式转换的函数可以使用。在这篇文章中,我们将通过以下几个方面带您了解如何使用Python函数进行时间格式转换。
一、时间格式的表示
在Python中,时间可以用多种不同的方式表示,如下所示:
1. 时间戳:以秒为单位的表示一个固定的时间点,从1970年1月1日零时零分零秒(UTC/GMT的午夜)开始计算。
2. 时间元组(struct_time):一个包含9个元素的元组,分别表示年、月、日、时、分、秒、周内第几天、一年中第几天、夏令时。
3. 字符串:一种可读性较好的形式,表示的是一段时间的范围(如“2020年1月1日至2021年1月1日”)或者一个具体的时间点(如“2020年1月1日晚上8点5分30秒”)。
对于界面交互,字符串形式的时间更被广泛应用,因为字符串时间更有人性化,具有可读性。
二、Python中的时间格式转换函数
Python中有许多时间格式转换函数,这些函数可以根据我们的需要,将时间格式从不同的形式进行转换。下面是一些常用的时间格式转换函数。
1. time.time()
time.time()函数返回从1970年1月1日零时零分零秒(UTC/GMT的午夜)到当前时间的秒数,也称为UNIX时间戳。
import time
now = time.time()
print(now)
输出结果:1631928537.9360948
2. time.localtime()
time.localtime()函数将时间戳转换为时间元组,以便在程序中进一步操作。
import time
now = time.time()
local_time = time.localtime(now)
print(local_time)
输出结果:time.struct_time(tm_year=2021, tm_mon=9, tm_mday=17, tm_hour=16, tm_min=35, tm_sec=37, tm_wday=4, tm_yday=260, tm_isdst=0)
3. time.strftime()
time.strftime()函数将时间元组转换为格式化字符串。
import time
now = time.localtime()
local_time = time.strftime('%Y-%m-%d %H:%M:%S', now)
print(local_time)
输出结果:2021-09-17 16:42:08
strftime()函数中的参数是一个格式字符串,用于指定输出字符串的格式,具体含义如下:
%Y:千年
%m:月
%d:日
%H:小时
%M:分钟
%S:秒
4. time.strptime()
time.strptime()函数将格式化字符串转换为时间元组。
import time
format_time = '2021-09-17 16:42:08'
local_time = time.strptime(format_time, '%Y-%m-%d %H:%M:%S')
print(local_time)
输出结果:time.struct_time(tm_year=2021, tm_mon=9, tm_mday=17, tm_hour=16, tm_min=42, tm_sec=8, tm_wday=4, tm_yday=260, tm_isdst=-1)
5. datetime.datetime.strptime()
datetime.datetime.strptime()函数将格式化字符串转换为datetime对象。
import datetime
format_time = '2021-09-17 16:42:08'
local_time = datetime.datetime.strptime(format_time, '%Y-%m-%d %H:%M:%S')
print(local_time)
输出结果:2021-09-17 16:42:08
三、案例介绍
下面我们来通过一个案例介绍如何使用Python函数进行时间格式转换。假设我们需要将“2021年9月17日”这种格式的时间转换为时间戳。
import time
format_time = '2021年9月17日'
local_time = time.strptime(format_time, '%Y年%m月%d日')
timestamp = time.mktime(local_time)
print(local_time)
print(timestamp)
输出结果:
time.struct_time(tm_year=2021, tm_mon=9, tm_mday=17, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=260, tm_isdst=-1)
1631808000.0
在上面的代码中,通过time.strptime()函数将“2021年9月17日”转换为时间元组,再通过time.mktime()函数将其转换为时间戳。这样,我们就成功地将字符串格式的时间转换为数字格式的时间戳了。
四、总结
时间是程序中常见的数据类型之一,在Python中有许多函数可以进行时间格式的转换,我们可以将其转换为时间戳、时间元组、格式化字符串、datetime对象等不同的形式。在实际开发中,根据自己的需求,选择不同的格式进行操作可以效率更高。需要注意的是,时间格式的表示方式有多种,一定要根据实际情况进行选择,以避免出现不必要的错误。
