一、了解时间格式化字符串
strptime函数是Python中将字符串转换为时间的函数,它可以将字符串解析为一个时间元组。在使用该函数之前,了解时间格式化字符串对于正确解析时间字符串至关重要。时间格式化字符串是一个字符串,其中包含一些特殊的格式化指令,将会在调用strptime函数时被替换为相应的值。
下面是一些常用的格式化指令:
%Y 四位数的年份
%m 月份(01-12)
%B 月份名称
%b 月份名称缩写
%d 日期(01-31)
%H 小时(00-23)
%M 分钟(00-59)
%S 秒(00-59)
%f 微秒
%z UTC偏移量
%Z 时区名称
%j 一年中的第几天 (001-366)
%U 一年中的第几周 (00-53) 星期日作为一周的第一天
%W 一年中的第几周 (00-53) 星期一作为一周的第一天
%c 完整的日期和时间
%x 仅日期
%X 仅时间
%w 星期(0-6),星期日为星期0
例如,时间格式化字符串为“%Y-%m-%d %H:%M:%S”,该字符串表示将时间格式化为“年-月-日 时:分:秒”的形式。
二、将字符串转换为时间
下面是一个例子,将时间字符串转换为时间元组:
import time
date_str = "2022-01-01 08:15:27"
time_tuple = time.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(time_tuple)
输出:
time.struct_time(tm_year=2022, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=15, tm_sec=27, \
tm_wday=5, tm_yday=1, tm_isdst=-1)
上述代码中,date_str表示要转换的时间字符串,"%Y-%m-%d %H:%M:%S"是时间格式化字符串,调用strptime函数将时间字符串转换为时间元组。运行程序后,输出的结果为时间元组。
三、从时间元组中获取时间
time元组是一个包含9个元素的元组,可以使用元组的索引获取时间元素,例如tm_year表示年份,tm_mon表示月份等。
下面是一个例子,从时间元组中获取年份:
import time
date_str = "2022-01-01 08:15:27"
time_tuple = time.strptime(date_str, "%Y-%m-%d %H:%M:%S")
year = time_tuple.tm_year
print(year)
输出:
2022
上述代码中,通过解析时间字符串获得时间元组,然后使用tm_year获取年份。
四、将时间转换为字符串
通过strftime函数可以将时间元组转换为时间字符串,具体方法是给定一个时间格式化字符串,然后将时间元组格式化成字符串。
下面是一个例子,将时间元组转换为时间字符串:
import time
time_tuple = (2022, 1, 1, 8, 15, 27, 5, 1, -1)
date_str = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)
print(date_str)
输出:
2022-01-01 08:15:27
上述代码中,先定义一个时间元组,然后使用strftime函数将时间元组转换为时间字符串,运行程序后可以看到输出的时间字符串为"2022-01-01 08:15:27"。
五、处理时区
strptime函数和strftime函数的时区参数都是不同的。在调用strptime函数时,可以使用"UTC"或"+"符号和UTC偏移量指定时间字符串中的时区标识符。在调用strftime函数时,可以使用"%z"或"%Z"指令指定输出的时区。
下面是一个例子,演示如何将使用UTC时区的时间字符串转换为时间元组,并将其转换为指定时区的时间字符串:
import time
date_str = "2022-01-01 08:15:27+00:00"
time_tuple = time.strptime(date_str, "%Y-%m-%d %H:%M:%S%z")
local_time_tuple = time.localtime(time.mktime(time_tuple) + 8 * 3600)
local_date_str = time.strftime("%Y-%m-%d %H:%M:%S %Z", local_time_tuple)
print(local_date_str)
输出:
2022-01-01 16:15:27 CST
上述代码中,首先使用strptime函数解析时间字符串且该字符串包含时区信息,然后使用localtime函数将时间元组转换为本地时间元组。最后使用strftime函数将本地时间元组转换为包含时区信息的时间字符串,并输出。
六、总结
strptime函数是Python中将字符串转换为时间的函数,它可以将字符串解析为一个时间元组。在使用该函数之前,了解时间格式化字符串对于正确解析时间字符串至关重要。通过strftime函数可以将时间元组转换为时间字符串。处理时区时,strptime函数和strftime函数的时区参数都是不同的。