Convert a date to a string under the control of a format. format should be a string containing ‘~’ escapes, which will be expanded as per the following conversion table. The default format is ‘~c’, a locale-dependent date and time.
Many of these conversion characters are the same as POSIX
strftime
(see Time), but there are some extras and some
variations.
~~ | literal ~ |
~a | locale abbreviated weekday, eg. ‘Sun’ |
~A | locale full weekday, eg. ‘Sunday’ |
~b | locale abbreviated month, eg. ‘Jan’ |
~B | locale full month, eg. ‘January’ |
~c | locale date and time, eg. ‘Fri Jul 14 20:28:42-0400 2000’ |
~d | day of month, zero padded, ‘01’ to ‘31’ |
~e | day of month, blank padded, ‘ 1’ to ‘31’ |
~f | seconds and fractional seconds, with locale decimal point, eg. ‘5.2’ |
~h | same as ~b |
~H | hour, 24-hour clock, zero padded, ‘00’ to ‘23’ |
~I | hour, 12-hour clock, zero padded, ‘01’ to ‘12’ |
~j | day of year, zero padded, ‘001’ to ‘366’ |
~k | hour, 24-hour clock, blank padded, ‘ 0’ to ‘23’ |
~l | hour, 12-hour clock, blank padded, ‘ 1’ to ‘12’ |
~m | month, zero padded, ‘01’ to ‘12’ |
~M | minute, zero padded, ‘00’ to ‘59’ |
~n | newline |
~N | nanosecond, zero padded, ‘000000000’ to ‘999999999’ |
~p | locale AM or PM |
~r | time, 12 hour clock, ‘~I:~M:~S ~p’ |
~s | number of full seconds since “the epoch” in UTC |
~S | second, zero padded ‘00’ to ‘60’ (usual limit is 59, 60 is a leap second) |
~t | horizontal tab character |
~T | time, 24 hour clock, ‘~H:~M:~S’ |
~U | week of year, Sunday first day of week, ‘00’ to ‘52’ |
~V | week of year, Monday first day of week, ‘01’ to ‘53’ |
~w | day of week, 0 for Sunday, ‘0’ to ‘6’ |
~W | week of year, Monday first day of week, ‘00’ to ‘52’ |
~y | year, two digits, ‘00’ to ‘99’ |
~Y | year, full, eg. ‘2003’ |
~z | time zone, RFC-822 style |
~Z | time zone symbol (not currently implemented) |
~1 | ISO-8601 date, ‘~Y-~m-~d’ |
~2 | ISO-8601 time+zone, ‘~H:~M:~S~z’ |
~3 | ISO-8601 time, ‘~H:~M:~S’ |
~4 | ISO-8601 date/time+zone, ‘~Y-~m-~dT~H:~M:~S~z’ |
~5 | ISO-8601 date/time, ‘~Y-~m-~dT~H:~M:~S’ |
Conversions ‘~D’, ‘~x’ and ‘~X’ are not currently described here, since the specification and reference implementation differ.
Conversion is locale-dependent on systems that support it
(see Accessing Locale Information). See setlocale
, for information on how to change the current
locale.