官方文檔(節選)
strftime()
andstrptime()
Format Codes
The following is a list of all the format codes that the 1989 C standard requires, and these work on all platforms with a standard C implementation.
Directive | Meaning | Example | Notes |
---|---|---|---|
%a | Weekday as locale’s abbreviated name. | Sun, Mon, …, Sat (en_US); So, Mo, …, Sa (de_DE) |
(1) |
%A | Weekday as locale’s full name. | Sunday, Monday, …, Saturday (en_US); Sonntag, Montag, …, Samstag (de_DE) |
(1) |
%w | Weekday as a decimal number, where 0 is Sunday and 6 is Saturday. | 0, 1, …, 6 | |
%d | Day of the month as a zero-padded decimal number. | 01, 02, …, 31 | (9) |
%b | Month as locale’s abbreviated name. | Jan, Feb, …, Dec (en_US); Jan, Feb, …, Dez (de_DE) |
(1) |
%B | Month as locale’s full name. | January, February, …, December (en_US); Januar, Februar, …, Dezember (de_DE) |
(1) |
%m | Month as a zero-padded decimal number. | 01, 02, …, 12 | (9) |
%y | Year without century as a zero-padded decimal number. | 00, 01, …, 99 | (9) |
%Y | Year with century as a decimal number. | 0001, 0002, …, 2013, 2014, …, 9998, 9999 | (2) |
%H | Hour (24-hour clock) as a zero-padded decimal number. | 00, 01, …, 23 | (9) |
%I | Hour (12-hour clock) as a zero-padded decimal number. | 01, 02, …, 12 | (9) |
%p | Locale’s equivalent of either AM or PM. | AM, PM (en_US); am, pm (de_DE) |
(1), (3) |
%M | Minute as a zero-padded decimal number. | 00, 01, …, 59 | (9) |
%S | Second as a zero-padded decimal number. | 00, 01, …, 59 | (4), (9) |
%f | Microsecond as a decimal number, zero-padded on the left. | 000000, 000001, …, 999999 | (5) |
%z | UTC offset in the form ±HHMM[SS[.ffffff]] (empty string if the object is naive). | (empty), +0000, -0400, +1030, +063415, -030712.345216 | (6) |
%Z | Time zone name (empty string if the object is naive). | (empty), UTC, EST, CST | |
%j | Day of the year as a zero-padded decimal number. | 001, 002, …, 366 | (9) |
%U | Week number of the year (Sunday as the first day of the week) as a zero padded decimal number. All days in a new year preceding the first Sunday are considered to be in week 0. | 00, 01, …, 53 | (7), (9) |
%W | Week number of the year (Monday as the first day of the week) as a decimal number. All days in a new year preceding the first Monday are considered to be in week 0. | 00, 01, …, 53 | (7), (9) |
%c | Locale’s appropriate date and time representation. | Tue Aug 16 21:30:00 1988 (en_US); Di 16 Aug 21:30:00 1988 (de_DE) |
(1) |
%x | Locale’s appropriate date representation. | 08/16/88 (None); 08/16/1988 (en_US); 16.08.1988 (de_DE) |
(1) |
%X | Locale’s appropriate time representation. | 21:30:00 (en_US); 21:30:00 (de_DE) |
(1) |
%% | A literal ‘%’ character. | % |
talk is cheap, show me the code
In [1]: from datetime import datetime
In [2]: now = datetime.now()
In [3]: now
Out[3]: datetime.datetime(2019, 11, 12, 11, 30, 30, 579639)
In [4]: now.strftime('%a, %A, %w, %b, %B, %Y-%m-%d %H:%M:%S.%f, %p, %j, %z, %Z
...: %U, %W, %c, %x, %X')
Out[4]: 'Tue, Tuesday, 2, Nov, November, 2019-11-12 11:30:30.579639, AM, 316, ,
45, 45, Tue Nov 12 11:30:30 2019, 11/12/19, 11:30:30'
從左至右依次解析:
%a:今天是周幾的英文簡寫,
%A:今天是周幾的英文全稱,
%w:今天是周幾的數字,
%b:本月的簡寫,
%B:本月的全稱,
%Y-%m-%d %H:%M:%S.%f: 當前時間的年月日時分秒毫秒,
%p:AM或PM,
%j: 今天是當年第幾天
%z: 空字符串,
%Z: 空字符串,
%U: 本週是當年的第幾周(週日作爲當週第一天),
%W: 本週是當年的第幾周(週一作爲當週第一天),
%c: 默認美式顯示日期和時間 精確到秒
%x: 美式顯示日期
%X: 美式顯示時間