format.Date {base} | R Documentation |
Functions to convert between character representations and objects of
class "Date"
representing calendar dates.
as.Date(x, ...) ## S3 method for class 'character': as.Date(x, format = "", ...) ## S3 method for class 'Date': format(x, ...) ## S3 method for class 'Date': as.character(x, ...)
x |
An object to be converted. |
format |
A character string. The default is
"%Y-%m-%d" . For details see strftime . |
... |
Further arguments to be passed from or to other methods,
including format for as.character and as.Date
methods. |
The usual vector re-cycling rules are applied to x
and
format
so the answer will be of length that of the longer of the
vectors.
Locale-specific conversions to and from character strings are used where appropriate and available. This affects the names of the days and months.
The as.Date
methods accept character strings, factors, logical
NA
and objects of classes "POSIXlt"
and
"POSIXct"
. (The last are converted to days by
ignoring the time after midnight in the
representation of the time in UTC.) Also objects of class
"date"
(from package date or
survival) and
"dates"
(from package chron).
See the examples for how to convert a day given as the number of days since an epoch.
The format
and as.character
methods ignore any
fractional part of the date.
The format
and as.character
methods return a character vector
representing the date.
The as.Date
methods return an object of class "Date"
.
The default formats follow the rules of the ISO 8601 international
standard which expresses a day as "2001-02-03"
.
If the date string does not specify the date completely, the returned
answer may be system-specific. The most common behaviour is to assume
that a missing
year, month or day is the current one. If it specifies a date
incorrectly, reliable implementations will give an error and the date
is reported as NA
. Unfortunately some common implementations
(such as glibc) are unreliable and guess at the intended meaning.
Years before 1CE (aka 1AD) will probably not be handled correctly.
International Organization for Standardization (2004, 1988, 1997, ...) ISO 8601. Data elements and interchange formats – Information interchange – Representation of dates and times. For links to versions available on-line see (at the time of writing) http://www.qsl.net/g1smd/isopdf.htm; for information on the current official version, see http://www.iso.org/iso/en/prods-services/popstds/datesandtime.html.
Date for details of the date class;
locales
to query or set a locale.
Your system's help pages on strftime
and strptime
to
see how to specify their formats.
Windows users will find no help page for strptime
: code based
on glibc is used (with corrections), so all the format
specifiers described here are supported, but with no alternative
number representation nor era available in any locale.
## locale-specific version of the date format(Sys.Date(), "%a %b %d") ## read in date info in format 'ddmmmyyyy' ## This will give NA(s) in some locales; setting the C locale ## as in the commented lines will overcome this on most systems. ## lct <- Sys.getlocale("LC_TIME"); Sys.setlocale("LC_TIME", "C") x <- c("1jan1960", "2jan1960", "31mar1960", "30jul1960") z <- as.Date(x, "%d%b%Y") ## Sys.setlocale("LC_TIME", lct) z ## read in date/time info in format 'm/d/y' dates <- c("02/27/92", "02/27/92", "01/14/92", "02/28/92", "02/01/92") as.Date(dates, "%m/%d/%y") ## date given as number of days since 1900-01-01 (a date in 1989) as.Date("1900-01-01") + 32768