Create 'timeDate' objects from scratch
timeDate.Rd
Create a "timeDate"
object from scratch from a character
vector or other suitable objects.
Usage
timeDate(charvec, format = NULL, zone = "", FinCenter = "", ...)
# S4 method for character
timeDate(charvec, format = NULL, zone = "", FinCenter = "",
dst_gap = "+")
strptimeDate(x, format = whichFormat(x), tz = "")
Arguments
- charvec
a character string or vector of dates and times.
- format
the format specification of the input character vector.
- tz
a character with the location of the financial center named as
"continent/city"
, or short"city"
.- zone
the time zone or financial center where the data were recorded.
- x
a character string or vector of dates and times.
- FinCenter
-
a character with the location of the financial center named as "continent/city".
- dst_gap
-
a character string specifying what to do with non-existent times falling in a DST gap: add an hour (
"+"
), subtract an hour ("-"
), set toNA
("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. - ...
further arguments for methods.
Details
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’.
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"
.
Methods
The following methods for timeDate
are defined in package
timeDate.
signature(charvec = "ANY")
Converts
charvec
tocharacter
and callstimeDate
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. Ifzone
is missing or equal to the empty string, just changes the financial center.
Examples
## 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
#> [1] "1989-09-28" "2001-01-15" "2004-08-30" "1990-02-09"
#> [1] "23:12:55" "10:34:02" "08:30:00" "11:18:23"
t1 <- timeDate(dts, format = "%Y-%m-%d", FinCenter = "GMT" )
t1
#> GMT
#> [1] [1989-09-28] [2001-01-15] [2004-08-30] [1990-02-09]
stopifnot(identical(t1, timeDate(dts, FinC = "GMT"))) # auto-format
timeDate(dts, format = "%Y-%m-%d", FinCenter = "Europe/Zurich")
#> Europe/Zurich
#> [1] [1989-09-28 01:00:00] [2001-01-15 01:00:00] [2004-08-30 02:00:00]
#> [4] [1990-02-09 01:00:00]
timeDate(paste(dts, tms), format = "%Y-%m-%d %H:%M:%S",
zone = "GMT", FinCenter = "GMT")
#> GMT
#> [1] [1989-09-28 23:12:55] [2001-01-15 10:34:02] [2004-08-30 08:30:00]
#> [4] [1990-02-09 11:18:23]
timeDate(paste(dts, tms),
zone = "Europe/Zurich", FinCenter = "Europe/Zurich")
#> Europe/Zurich
#> [1] [1989-09-28 23:12:55] [2001-01-15 10:34:02] [2004-08-30 08:30:00]
#> [4] [1990-02-09 11:18:23]
timeDate(paste(dts, tms), format = "%Y-%m-%d %H:%M:%S",
zone = "GMT", FinCenter = "Europe/Zurich")
#> Europe/Zurich
#> [1] [1989-09-29 00:12:55] [2001-01-15 11:34:02] [2004-08-30 10:30:00]
#> [4] [1990-02-09 12:18:23]
## Non Standard Format:
timeDate(paste(20:31, "03.2005", sep="."), format = "%d.%m.%Y")
#> GMT
#> [1] [2005-03-20] [2005-03-21] [2005-03-22] [2005-03-23] [2005-03-24]
#> [6] [2005-03-25] [2005-03-26] [2005-03-27] [2005-03-28] [2005-03-29]
#> [11] [2005-03-30] [2005-03-31]
## Note, ISO and American Formats are Auto-Detected:
timeDate("2004-12-31", FinCenter = "GMT")
#> GMT
#> [1] [2004-12-31]
timeDate("12/11/2004", FinCenter = "GMT")
#> GMT
#> [1] [2004-12-11]
timeDate("1/31/2004") # auto-detect American format
#> GMT
#> [1] [2004-01-31]
## 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