strftime()函数是用来格式化一个日期、日期时间和时间的函数,支持date、datetime、time等类,把这些日期、日期时间或时间通过格式字符要求格式为字符串表示。相反strptime()函数就是从字符串表示的日期时间按格式化字符串要求转换为相应的日期时间。
对于time对象来说,格式化字符串不要使用年、月、日相关的字符,因为time对象没有相应的值。如果不幸使用了,只能默认输出为0值。
对于date对象来说,格式化字符串不要使用时、分、秒和微秒相关的字符,因为date对象没有相应的值。如果使用了,只能默认输出为0值。
由于strftime()函数是调用C语言lib库来实现的,所以在不同平台都支持,具体特定平台支持的细节,需要在平台上查看strftime文档说明。
下面列表符合C89和C99标准的格式化字符:
格式字符 |
意义 |
例子 |
注意事项 |
%a |
星期几的英语缩写 |
Sun, Mon, ..., Sat(en_US); So, Mo, ..., Sa(de_DE) |
|
%A |
星期几的英语全称 |
Sunday, Monday, ..., Saturday(en_US) |
|
%w |
星期几采用数字表示,0表示星期日,6表示星期六。 |
0,1,...,6 |
|
%d |
用0补充的两位日期数字。 |
01,02,...,31 |
|
%b |
月份采用缩写字符表示。 |
Jan, Feb,..., Dec(en_US) |
|
%B |
月份采用全名称表示。 |
January, February, ...,December(en_US) |
|
%m |
月份采用0补充的两位数表示。 |
01,02,...,12 |
|
%y |
年份采用0补充的两位数表示。 |
00,01,...,99 |
|
%Y |
采用四位数表示的年份。 |
0001,0002,...,2013,2014,2015,...,9998,9999 |
|
%H |
以0补充的24小时表示的小时。 |
00,01,...,23 |
|
%I |
以0补充的12小时表示的小时。 |
00,01,...,12 |
|
%p |
本地时间是上午还是下午。 |
AM,PM(en_US) |
|
%M |
以0补充的分钟表示。 |
00,01,...,59 |
|
%S |
以0补充的秒表示。 |
00,01,...,59 |
|
%f |
以0补充的微秒表示。 |
000000,000001,...,999999 |
|
%z |
UTC偏移表示为+HHMM或-HHMM。 |
(empty),+0000,-0400,+1030 |
|
%Z |
时区名称。 |
(empty),UTC,EST,CST |
|
%j |
以0补充的年的天数。 |
001,002,...,366 |
|
%U |
一年里第几周,星期日作为一周开始。 |
00,01,...,53 |
|
%W |
一年里第几周,星期一作为一周开始。 |
00,01,...,53 |
|
%c |
采用本地合适日期和时间表示。 |
Tue Aug 16 21:30:00 1988(en_US) |
|
%x |
采用本地合适日期表示。 |
08/16/88(None); 08/16/1988(en_US) |
|
%% |
输出百分号%。 |
% |
|
例子:
#python 3.4
import datetime
tz = datetime.timezone(datetime.timedelta(hours = 8))
dt = datetime.datetime(2015, 12, 1, tzinfo=tz)
print(tz.utc)
print(dt.strftime('%A %z %U'))
结果输出如下:
UTC+00:00
Tuesday +0800 48
蔡军生 QQ:9073204 深圳