2012-08-11 25 views
5

我在xts对象中有一堆1分钟的回报,索引是POSIXct,时区是GMT。回报在纽约证券交易所上市,所以我想转换到东部时区,但我想妥善保管夏令时。这样做的最好方法是什么?我对EST时区和EDT时区有点混淆。我希望我的时代能够在冬季和夏季正确地转换到纽约时间。POSIXct和xts中的时区,从GMT转换为R

+0

“EST” 是东部标准时间和 “EDT” 是东部夏令时间。 – 2012-08-11 20:43:18

+0

那么这是否意味着EDT包含夏令时更改,而EST不会呢?我只是不知道差异。 – Alex 2012-08-11 20:52:57

+0

他们是同一个时区。 “EDT”是DST生效时的情况。 – 2012-08-12 00:33:41

回答

5

使用indexTZ<-America/New_York时区

> tail(SPY) 
        SPY.Bid.Price SPY.Ask.Price SPY.Trade.Price SPY.Mid.Price SPY.Volume 
2012-08-09 19:54:00  140.47  140.48   140.48  140.475  2372 
2012-08-09 19:55:00  140.46  140.47   140.46  140.465  5836 
2012-08-09 19:56:00  140.47  140.48   140.48  140.475  2538 
2012-08-09 19:57:00  140.47  140.48   140.47  140.475  2209 
2012-08-09 19:58:00  140.48  140.49   140.49  140.485  4943 
2012-08-09 19:59:00  140.58  140.59   140.58  140.585  16780 
> indexTZ(SPY) <- "America/New_York" 
> tail(SPY) 
        SPY.Bid.Price SPY.Ask.Price SPY.Trade.Price SPY.Mid.Price SPY.Volume 
2012-08-09 15:54:00  140.47  140.48   140.48  140.475  2372 
2012-08-09 15:55:00  140.46  140.47   140.46  140.465  5836 
2012-08-09 15:56:00  140.47  140.48   140.48  140.475  2538 
2012-08-09 15:57:00  140.47  140.48   140.47  140.475  2209 
2012-08-09 15:58:00  140.48  140.49   140.49  140.485  4943 
2012-08-09 15:59:00  140.58  140.59   140.58  140.585  16780 
Warning message: 
timezone of object (America/New_York) is different than current timezone (GMT). 
+1

我可以问,你怎么知道可以传递给'indexTZ'的可能值? – Alex 2012-08-11 21:20:19

+3

试试这两页的背景:http://en.wikipedia.org/wiki/Time_zone和http://en.wikipedia.org/wiki/IANA_time_zone_database – 2012-08-11 21:32:06

+0

或这一个:http://en.wikipedia.org/ wiki/List_of_tz_database_time_zones – GSee 2012-08-11 23:11:34