您的位置:

Python time.strptime实现字符串和时间类型相互转换

一、time模块的介绍

在Python中,time模块是一个常用的模块之一,它提供了与时间相关的函数和方法。下面是time模块中一些最常用的函数:

  • time():返回当前系统时间的时间戳。
  • ctime():返回当前系统时间的字符串形式。
  • localtime([secs]):将一个时间戳(默认为当前时间)转换为本地时间,返回时间元组。
  • strftime(format[, t]):将时间元组或 struct_time 对象转换为字符串。
  • strptime(string[, format]):将字符串解析为时间元组。

二、time.strptime()的用法

time.strptime(string[, format]) 方法可以将一个指定格式的字符串解析为时间元组。其中 string 是一个字符串,format 是一个字符串,用来指定输入字符串的格式。如果不指定 format,则默认使用 %a %b %d %H:%M:%S %Y 格式。下面是一个示例:

import time

# 将字符串 '2018-06-29 08:15:20' 转换为时间元组
time_tuple = time.strptime('2018-06-29 08:15:20', '%Y-%m-%d %H:%M:%S')

print(time_tuple)

输出结果为:

time.struct_time(tm_year=2018, tm_mon=6, tm_mday=29, tm_hour=8, tm_min=15, tm_sec=20, tm_wday=4, tm_yday=180, tm_isdst=-1)

三、将时间元组转换成字符串

通过 strftime() 方法可以将时间元组或 struct_time 对象转换为字符串。方法的第一个参数是时间格式字符串,该字符串可以包含各种 %Y、%m、%d、%H、%M、%S 等格式化占位符。以下是一个示例:

import time

# 将时间元组转换成字符串
time_tuple = (2018, 6, 29, 8, 15, 20, 4, 180, -1)
date_string = time.strftime('%Y-%m-%d %H:%M:%S', time_tuple)

print(date_string)

输出结果为:

'2018-06-29 08:15:20'

四、字符串和时间类型相互转换的示例

下面是一个示例,将一个时间元组转换成字符串,然后再将字符串转换成时间元组:

import time

time_tuple = (2018, 6, 29, 8, 15, 20, 4, 180, -1)

# 将时间元组转换成字符串
date_string = time.strftime('%Y-%m-%d %H:%M:%S', time_tuple)

print('时间元组转成字符串:', date_string)

# 将字符串 '2018-06-29 08:15:20' 转换为时间元组
new_time_tuple = time.strptime(date_string, '%Y-%m-%d %H:%M:%S')

print('字符串转成时间元组:', new_time_tuple)

输出结果为:

时间元组转成字符串: 2018-06-29 08:15:20
字符串转成时间元组: time.struct_time(tm_year=2018, tm_mon=6, tm_mday=29, tm_hour=8, tm_min=15, tm_sec=20, tm_wday=4, tm_yday=180, tm_isdst=-1)

五、小结

Python中的time模块提供了丰富的时间相关函数和方法,其中 time.strptime() 可以将字符串解析为时间元组,再通过 strftime() 方法将时间元组转换成字符串,实现了字符串和时间类型之间的相互转换。该功能在日常开发工作中经常用到,是Python中时间处理的重要组成部分。