Python函数处理时间与日期:strftime、strptime等
Python是一种强大的编程语言,还具有处理时间和日期的能力。对于很多应用场景中,我们需要对时间和日期进行格式化和转换。Python有几个内置的函数可以帮助我们实现这一点:strftime和strptime。本文介绍了如何使用这些函数来处理时间与日期。
一、strftime
strftime是Python的一个时间格式化函数,它接收一个日期/时间对象(datetime或timedelta),并将其格式化成一个字符串。下面来看一下strftime的用法:
strftime(format[, t])
其中,format是指定输出格式的一个字符串,t是指日期/时间对象(默认为当前时间)。
下面是一个简单的例子:
from datetime import datetime
today = datetime.today()
s = today.strftime("%m-%d-%Y")
print(s)
输出的结果将是当前日期的字符串格式(月-日-年),例如 "04-07-2021"。
strftime函数参数列表:
%d - 日期的日,用01至31的两个数字表示。 %b - 月份(本地简称)的缩写,如Jan,Feb等。 %B - 月份(本地全称)的名称,如January,February等。 %m - 用01至12的两个数字表示的月份。 %y - 用两个数字表示的年份,例如 21 表示 2021 年。 %Y - 用四个数字表示的年份。 %H - 用两个数字表示的小时,从00到23。 %I - 用两个数字表示的小时,从01到12。 %p - AM或PM。 %M - 用两个数字表示的分钟,从00到59。 %S - 用两个数字表示的秒,从00到59。 %f - 微秒,用六个数字表示。 %z - 以+HHMM或-HHMM表示的UTC时区的偏移量。 %Z - 时区的缩写,如EST,MDT等。 %j - 一年中的天数,用001至366的三个数字表示。 %w - 用0至6的数字表示的星期几,其中0表示星期天,1表示星期一,以此类推。 %U - 一年中的星期数,从00到53,星期天被认为是每个星期的开始。 %W - 一年中的星期数,从00到53,星期一被认为是每个星期的开始。 %c - 本地日期和时间表示(如“Sun 06 Sep 2009 02:17:52 PM”)。 %x - 本地日期表示,如“09/07/12”。 %X - 本地时间表示,如“23:55:59”。 %% - 字符串“%”本身的字面值。
二、strptime
strptime是Python的一个字符串转日期/时间函数。它接收一个字符串,根据指定的格式解析出日期/时间对象。下面来看一下strptime函数的用法:
strptime(date_string, format)
其中,date_string是要解析的日期/时间字符串,format是指定date_string的格式的字符串。
下面是一个示例,记录下字符串今天的日期格式:
from datetime import datetime date_string = "2021-04-07" d = datetime.strptime(date_string, "%Y-%m-%d") print(d)
输出结果为2021-04-07 00:00:00。
strptime函数的格式字符串与strftime函数的格式字符串大部分相同,但有一些细微的差别。例如,用于解析12小时制的时间的format字符串应包含一个%p格式,而生成的字符串中不需要包含这个格式。
注意:strftime函数输出的datetime是字符串类型,需要转为datetime类型。
总结
strftime和strptime是Python处理时间与日期的常用函数。使用它们时,可以方便地格式化和解析日期时间对象。这使得Python在处理时间与日期方面非常便利,尤其在与其他应用程序集成时,可以很方便地与它们交互。
