您的位置:

Python时间格式化:strptime的用法

一、时间格式化的基础

在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函数的用法进行了详细阐述,相信读者已对其有了更深入的了解。