Create a "timeDate"
object from scratch from a character vector
or other suitable objects.
timeDate(charvec, format = NULL, zone = "", FinCenter = "", ...)# S4 method for character
timeDate(charvec, format = NULL, zone = "", FinCenter = "",
dst_gap = "+")
## methods for as.timeDate
# S3 method for default
as.timeDate(x, zone = "", FinCenter = "")
# S3 method for POSIXt
as.timeDate(x, zone = "", FinCenter = "")
# S3 method for Date
as.timeDate(x, zone = "", FinCenter = "")
# S3 method for timeDate
as.timeDate(x, zone = x@FinCenter, FinCenter = "")
strptimeDate(x, format = whichFormat(x), tz = "")
an object of class "timeDate"
a character string or vector of dates and times.
the format specification of the input character vector.
the time zone or financial center where the data were recorded.
a character with the location of the financial center named as "continent/city".
a character string specifying what to do with non-existent times
falling in a DST gap: add an hour ("+"
), subtract an hour
("-"
), set to NA
("NA"
), or ignore
(""
). When the ‘ignore’ option is used the code to
check for this kind of faulty times is skipped and the result will
be equivalent to "+"
or "-"
but which one is not
defined. This could be useful when you are certain that there are no
times in DST gaps or don't care how they are dealt with.
for strptimeDate
, a character string or vector of dates and
times. For the as.timeDate
methods, an object from a class
that can be converted to "timeDate"
. The default method
converts x
to character
.
a character with the location of the financial center
named as "continent/city"
, or short "city"
.
further arguments for methods.
The following methods for timeDate
are defined in package
timeDate.
signature(charvec = "ANY")
Converts charvec
to character
and calls
timeDate
on the result.
signature(charvec = "character")
...
signature(charvec = "Date")
...
signature(charvec = "missing")
Returns the current time as "timeDate"
object.
signature(charvec = "numeric")
...
signature(charvec = "POSIXt")
...
signature(charvec = "timeDate")
Changes the time zone and/or financial center of charvec
to
the requested ones. If zone
is missing or equal to the
empty string, just changes the financial center.
timeDate
creates objects from class "timeDate"
from
character vectors, objects from several date/time classes, and other
suitable objects.. It is an S4 generic function and this page
describes the methods defined in package timeDate, see section
‘Methods’.
Note that zone
is the time zone of the input, while
FinCenter
is the ‘current’ time zone, typically but not
necessarilly where the code is run. To change one or both of these
time zones of an existing "timeDate"
object, call
timeDate()
on it, see the method for charvec = "timeDate"
in section ‘Methods’.
The methods for as.timeDate
call timeDate
, maybe after
some minor preparation. The default method for as.timeDate
converts x
to character
before calling timeDate
.
strptimeDate
is a wrapper of timeDate
, suitable when
zone
and FinCenter
are the same, It has the same
arguments as strptime
. If format
is missing it
tries to deduce it. If tz
is missing it sets it to the value of
the Rmetrics option "myFinCenter"
.
as.character
,
as.POSIXct
,
etc., for conversion from "timeDate"
to other classes
## timeDate
# character vector strings:
dts = c("1989-09-28", "2001-01-15", "2004-08-30", "1990-02-09")
tms = c( "23:12:55", "10:34:02", "08:30:00", "11:18:23")
dts; tms
t1 <- timeDate(dts, format = "%Y-%m-%d", FinCenter = "GMT" )
t1
stopifnot(identical(t1, timeDate(dts, FinC = "GMT"))) # auto-format
timeDate(dts, format = "%Y-%m-%d", FinCenter = "Europe/Zurich")
timeDate(paste(dts, tms), format = "%Y-%m-%d %H:%M:%S",
zone = "GMT", FinCenter = "GMT")
timeDate(paste(dts, tms),
zone = "Europe/Zurich", FinCenter = "Europe/Zurich")
timeDate(paste(dts, tms), format = "%Y-%m-%d %H:%M:%S",
zone = "GMT", FinCenter = "Europe/Zurich")
## non standard format:
timeDate(paste(20:31, "03.2005", sep="."), format = "%d.%m.%Y")
## ISO and American formats are auto-detected:
timeDate("2004-12-31", FinCenter = "GMT")
timeDate("12/11/2004", FinCenter = "GMT")
timeDate("1/31/2004") # auto-detect American format
## From POSIX?t, and using NAs
## lsec <- as.POSIXlt(.leap.seconds) ; lsec[c(2,4:6)] <- NA
## timeDate(lsec)
## dtms <- paste(dts,tms)
## dtms[2:3] <- NA
## timeDate(dtms, FinCenter = "Europe/Zurich") # but in GMT
## would need change in R :
## tms[3] <- dts[2] <- NA
## timeDate(paste(dts,tms), FinCenter = "Europe/Zurich") # but in GMT
## Coerce a 'Date' object into a 'timeDate' object:
as.timeDate(Sys.Date())
Run the code above in your browser using DataLab