欢迎访问宙启技术站
智能推送

Python函数处理时间与日期:strftime、strptime等

发布时间:2023-05-20 08:02:52

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在处理时间与日期方面非常便利,尤其在与其他应用程序集成时,可以很方便地与它们交互。