% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/tzone.R
\name{indexTZ}
\alias{indexTZ}
\alias{tzone}
\alias{indexTZ<-}
\alias{tzone<-}
\title{Get or Replace the Timezone of an xts Object's Index}
\usage{
indexTZ(x, ...)

tzone(x, ...)

indexTZ(x) <- value

tzone(x) <- value
}
\arguments{
\item{x}{An xts object.}

\item{\dots}{Arguments passed to other methods.}

\item{value}{A valid timezone value (see \code{\link[=OlsonNames]{OlsonNames()}}).}
}
\value{
A one element named vector containing the timezone of the object's
index.
}
\description{
Generic functions to get or replace the timezone of an xts object's index.
}
\details{
Internally, an xts object's index is a \emph{numeric} value corresponding to
seconds since the epoch in the UTC timezone. When an xts object is created,
all time index values are converted internally to \code{\link[=POSIXct]{POSIXct()}}
(which is also in seconds since the UNIX epoch), using the underlying OS
conventions and the \env{TZ} environment variable. The \code{xts()} function
manages timezone information as transparently as possible.

The \verb{tzone<-} function \emph{does not} change the internal index values
(i.e. the index will remain the same time in the UTC timezone).
}
\note{
Both \code{indexTZ()} and \verb{indexTZ<-} are deprecated in favor of
\code{tzone()} and \verb{tzone<-}, respectively.

Problems may arise when an object that had been created under one timezone
are used in a session using another timezone. This isn't usually a issue,
but when it is a warning is given upon printing or subsetting. This warning
may be suppressed by setting \code{options(xts_check_TZ = FALSE)}.
}
\examples{

# Date indexes always have a "UTC" timezone
x <- xts(1, Sys.Date())
tzone(x)
str(x)
print(x)

# The default 'tzone' is blank -- your machine's local timezone,
# determined by the 'TZ' environment variable.
x <- xts(1, Sys.time())
tzone(x)
str(x)

# now set 'tzone' to different values
tzone(x) <- "UTC"
str(x)

tzone(x) <- "America/Chicago"
str(x)

y <- timeBasedSeq('2010-01-01/2010-01-03 12:00/H')
y <- xts(seq_along(y), y, tzone = "America/New_York")

# Changing the tzone does not change the internal index values, but it
# does change how the index is printed!
head(y)
head(.index(y))
tzone(y) <- "Europe/London"
head(y)          # the index prints with hours, but
head(.index(y))  # the internal index is not changed!

}
\seealso{
\code{\link[=index.xts]{index()}} has more information on the xts index, \code{\link[=tformat]{tformat()}}
describes how the index values are formatted when printed, and \code{\link[=tclass]{tclass()}}
provides details how \pkg{xts} handles the class of the index.
}
\author{
Jeffrey A. Ryan
}
\keyword{ts}
\keyword{utilities}
