Go to the first, previous, next, last section, table of contents.
These functions convert time values (lists of two or three integers)
to strings or to calendrical information. There is also a function to
convert calendrical information to a time value. You can get time
values from the functions current-time (see section Time of Day) and
file-attributes (see section Other Information about Files).
Many operating systems are limited to time values that contain 32 bits
of information; these systems typically handle only the times from
1901-12-13 20:45:52 UTC through 2038-01-19 03:14:07 UTC. However, some
operating systems have larger time values, and can represent times far
in the past or future.
Time conversion functions always use the Gregorian calendar, even for
dates before the Gregorian calendar was introduced. Year numbers count
the number of years since the year 1 B.C., and do not skip zero as
traditional Gregorian years do; for example, the year number -37
represents the Gregorian year 38 B.C.
- Function: format-time-string format-string time
-
This function converts time to a string according to
format-string. The argument format-string may contain
`%'-sequences which say to substitute parts of the time. Here is a
table of what the `%'-sequences mean:
- `%a'
-
This stands for the abbreviated name of the day of week.
- `%A'
-
This stands for the full name of the day of week.
- `%b'
-
This stands for the abbreviated name of the month.
- `%B'
-
This stands for the full name of the month.
- `%c'
-
This is a synonym for `%x %X'.
- `%C'
-
This has a locale-specific meaning. In the default locale (named C), it
is equivalent to `%A, %B %e, %Y'.
- `%d'
-
This stands for the day of month, zero-padded.
- `%D'
-
This is a synonym for `%m/%d/%y'.
- `%e'
-
This stands for the day of month, blank-padded.
- `%h'
-
This is a synonym for `%b'.
- `%H'
-
This stands for the hour (00-23).
- `%I'
-
This stands for the hour (00-12).
- `%j'
-
This stands for the day of the year (001-366).
- `%k'
-
This stands for the hour (0-23), blank padded.
- `%l'
-
This stands for the hour (1-12), blank padded.
- `%m'
-
This stands for the month (01-12).
- `%M'
-
This stands for the minute (00-59).
- `%n'
-
This stands for a newline.
- `%p'
-
This stands for `AM' or `PM', as appropriate.
- `%r'
-
This is a synonym for `%I:%M:%S %p'.
- `%R'
-
This is a synonym for `%H:%M'.
- `%S'
-
This stands for the seconds (00-60).
- `%t'
-
This stands for a tab character.
- `%T'
-
This is a synonym for `%H:%M:%S'.
- `%U'
-
This stands for the week of the year (01-52), assuming that weeks
start on Sunday.
- `%w'
-
This stands for the numeric day of week (0-6). Sunday is day 0.
- `%W'
-
This stands for the week of the year (01-52), assuming that weeks
start on Monday.
- `%x'
-
This has a locale-specific meaning. In the default locale (named C), it
is equivalent to `%D'.
- `%X'
-
This has a locale-specific meaning. In the default locale (named C), it
is equivalent to `%T'.
- `%y'
-
This stands for the year without century (00-99).
- `%Y'
-
This stands for the year with century.
- `%Z'
-
This stands for the time zone abbreviation.
- Function: decode-time time
-
This function converts a time value into calendrical information. The
return value is a list of nine elements, as follows:
(seconds minutes hour day month year dow dst zone)
Here is what the elements mean:
- sec
-
The number of seconds past the minute, as an integer between 0 and 59.
- minute
-
The number of minutes past the hour, as an integer between 0 and 59.
- hour
-
The hour of the day, as an integer between 0 and 23.
- day
-
The day of the month, as an integer between 1 and 31.
- month
-
The month of the year, as an integer between 1 and 12.
- year
-
The year, an integer typically greater than 1900.
- dow
-
The day of week, as an integer between 0 and 6, where 0 stands for
Sunday.
- dst
-
t if daylight savings time is effect, otherwise nil.
- zone
-
An integer indicating the time zone, as the number of seconds east of
Greenwich.
Note that Common Lisp has different meanings for dow and
zone.
- Function: encode-time seconds minutes hour day month year &optional ...zone
-
This function is the inverse of
decode-time. It converts seven
items of calendrical data into a time value. For the meanings of the
arguments, see the table above under decode-time.
Year numbers less than 100 are treated just like other year numbers. If
you want them to stand for years above 1900, you must alter them yourself
before you call encode-time.
The optional argument zone defaults to the current time zone and
its daylight savings time rules. If specified, it can be either a list
(as you would get from current-time-zone) or an integer (as you
would get from decode-time). The specified zone is used without
any further alteration for daylight savings time.
If you pass more than seven arguments to encode-time, the first
six are used as seconds through year, the last argument is
used as zone, and the arguments in between are ignored. This
feature makes it possible to use the elements of a list returned by
decode-time as the arguments to encode-time, like this:
(apply 'encode-time (decode-time ...))
Go to the first, previous, next, last section, table of contents.