一、时间格式化的基础
在Python中,处理时间的常用库是datetime。datetime库中除了包含日期和时间的基本类型,还提供了一些常用的函数和方法,如strptime和strftime等。strptime函数是Python中用来将字符串转换成时间格式的函数,其用法如下:
datetime.datetime.strptime(date_string, format)
其中,date_string是待转换的字符串,format是date_string的时间格式。datetime.strptime函数会把date_string解析成datetime对象。例如:
import datetime date_string = '2020-11-11 11:11:11' date_format = '%Y-%m-%d %H:%M:%S' date_obj = datetime.datetime.strptime(date_string, date_format) print(date_obj)
输出结果为:
2020-11-11 11:11:11
上面的代码中,我们传入了待转换的字符串date_string和其时间格式date_format,然后调用datetime.datetime.strptime方法解析出datetime类型的日期时间对象date_obj。
二、时间格式化中的常用格式符
在上面的例子中,我们传入的时间格式字符串的格式与待转换的字符串完全一致。但实际应用中,由于原始数据的差异或者实际需要的时间格式的不同,往往需要进行格式化。下面是一些常用的日期时间格式符:
- %Y:年份,四位数字
- %m:月份,带前导零
- %d:日期,带前导零
- %H:小时(24小时制),带前导零
- %M:分钟,带前导零
- %S:秒数,带前导零
还可以使用其他字符表示时间的不同部分,以%m为例:
- %-m:不带前导零的月份(即1~12)
- %^m:大写字母形式的月份缩写
- %#m:字符形式的月份,可能带有前导零或后导空格
下面是一个使用常用格式符的例子:
import datetime date_string = '2021-10-01' date_format = '%Y/%m/%d' date_obj = datetime.datetime.strptime(date_string, date_format) print(date_obj)
输出结果为:
2021-10-01 00:00:00
三、自定义时间格式化符
虽然Python提供了很多常用的日期时间格式符,但在某些特殊情况下,可能需要使用自定义的格式化符。下面看一个例子:
import datetime date_string = '20211231' date_format = '%Y%m%d' date_obj = datetime.datetime.strptime(date_string, date_format) print(date_obj)
输出结果为:
2021-12-31 00:00:00
在上面的例子中,date_string是一个连续的数字字符串,通过运用自定义格式化符,我们成功将其转换成了datetime对象。
四、strptime函数中的映射表
在strptime函数中,时间格式化符对应的映射表如下:
- %a:周几的英文缩写
- %A:周几的英文全称
- %b:月份的英文缩写
- %B:月份的英文全称
- %c:日期时间的字符串表示,如'Wed Oct 27 14:21:20 2021'
- %d:一月中的第几天,带前导零,例如'01'
- %f:微秒数,范围从0到999999
- %H:24小时制下的小时数,带前导零,例如'01'~'23'
- %I:12小时制下的小时数,带前导零,例如'01'~'12'
- %j:一年中的第几天,不带前导零,例如'1'~'366'
- %m:月份,带前导零,例如'01'~'12'
- %M:分钟数,带前导零,例如'00'~'59'
- %p:AM或PM
- %S:秒数,带前导零,例如'00'~'59'
- %U:一年中的第几周,以周日为一周的第一天,从第一个周日开始算,不足两位前面补0,例如'01'~'53'
- %w:一周中的第几天,从周日开始算,0表示周日,6表示周六
- %W:一年中的第几周,以周一为一周的第一天,从第一个周一开始算,不足两位前面补0,例如'01'~'53'
- %x:日期的字符串表示,如'10/27/21'
- %X:时间的字符串表示,如'14:21:20'
- %y:两位数的年份表示(00-99)
- %Y:四位数的年份表示(如2021)
- %z:以+HHMM或-HHMM表示的UTC时区偏移量,例如+0800表示东八区
- %Z:时区名称,如CST、CDT、GMT等
- %%:表示字符“%”
五、结语
strptime函数是Python中对字符串进行格式化时间转换的利器,理解并熟练掌握其用法,可以极大地方便我们对时间的处理。本文从时间格式化的基础、常用格式符、自定义格式化符以及映射表4个方面对strptime函数的用法进行了详细阐述,相信读者已对其有了更深入的了解。