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, ‘~k:~M:~S~z’ ~3
ISO-8601 time, ‘~k:~M:~S’ ~4
ISO-8601 date/time+zone, ‘~Y-~m-~dT~k:~M:~S~z’ ~5
ISO-8601 date/time, ‘~Y-~m-~dT~k:~M:~S’
Conversions ‘~D’, ‘~x’ and ‘~X’ are not currently described here, since the specification and reference implementation differ.
Currently Guile doesn't implement any localizations for the above, all
outputs are in English, and the ‘~c’ conversion is POSIX
ctime
style ‘~a ~b ~d ~H:~M:~S~z ~Y’. This may change in
the future.