2016-03-23 7 views
1

Ich habe ein XTS-Objekt mit Zeitzone in "GMT", von dem, was ich auf dieser Website gesehen habe kann ich indexTZ() verwenden, um die Zeitzone zu ändern. Ich habe jeden Trick versucht, zuerst "GMT" und dann "IST". Angabe von "IST", wenn ich die Zeitstempel zum Datum-Zeit-Format umwandle: DF$DateTime= as.POSIXct(DF$DateTime/(10^9), origin="1970-01-01", tz = "IST") aber es gibt mir noch Zeit in "GMT". Im Grunde passiert nichts.Warum arbeitet indexTZ() nicht und ändert die Zeit?

> head(auro) 
           MP  avgVWAP TradePressure Modify 
2015-11-30 03:45:01 0.0000000000 0.0000117703   37 107 
2015-11-30 03:45:02 0.0016475976 0.0004038842   11  30 
2015-11-30 03:45:03 0.0007009310 0.0013219980   13  34 
2015-11-30 03:45:04 -0.0003656419 -0.0002547382   11  0 
2015-11-30 03:45:05 -0.0004572404 -0.0003604543    4  0 
2015-11-30 03:45:06 0.0005486634 0.0003343666    7 -14 
Warning message: 
timezone of object (GMT) is different than current timezone (IST). 
> indexTZ(auro)<- "IST" 
> head(auro) 
           MP  avgVWAP TradePressure Modify 
2015-11-30 03:45:01 0.0000000000 0.0000117703   37 107 
2015-11-30 03:45:02 0.0016475976 0.0004038842   11  30 
2015-11-30 03:45:03 0.0007009310 0.0013219980   13  34 
2015-11-30 03:45:04 -0.0003656419 -0.0002547382   11  0 
2015-11-30 03:45:05 -0.0004572404 -0.0003604543    4  0 
2015-11-30 03:45:06 0.0005486634 0.0003343666    7 -14 
> indexTZ(auro)<- "UTC" 
> head(auro) 
           MP  avgVWAP TradePressure Modify 
2015-11-30 03:45:01 0.0000000000 0.0000117703   37 107 
2015-11-30 03:45:02 0.0016475976 0.0004038842   11  30 
2015-11-30 03:45:03 0.0007009310 0.0013219980   13  34 
2015-11-30 03:45:04 -0.0003656419 -0.0002547382   11  0 
2015-11-30 03:45:05 -0.0004572404 -0.0003604543    4  0 
2015-11-30 03:45:06 0.0005486634 0.0003343666    7 -14 
Warning message: 
timezone of object (UTC) is different than current timezone (IST). 

ich bemerkte, dass es eine Trennung zwischen meiner Zeit und Zeitzone ist. Die Zeit ist in „GMT“, aber die Zeitzone in „IST“ angezeigt ist

> Sys.time() 
[1] "2016-03-23 06:49:00.816 IST" 

Also dachte ich, Systemzeitzone zu ändern ersten könnte helfen, aber es funktioniert nicht. Wieder passiert nichts.

> Sys.setenv(TZ = "GMT") 
> Sys.time() 
[1] "2016-03-23 06:51:31.044 GMT" 
> indexTZ(auro)<- "IST" 
> head(auro) 
           MP  avgVWAP TradePressure Modify 
2015-11-30 03:45:01 0.0000000000 0.0000117703   37 107 
2015-11-30 03:45:02 0.0016475976 0.0004038842   11  30 
2015-11-30 03:45:03 0.0007009310 0.0013219980   13  34 
2015-11-30 03:45:04 -0.0003656419 -0.0002547382   11  0 
2015-11-30 03:45:05 -0.0004572404 -0.0003604543    4  0 
2015-11-30 03:45:06 0.0005486634 0.0003343666    7 -14 
Warning message: 
timezone of object (IST) is different than current timezone (GMT). 

Jede Idee, warum dies geschieht?

Ändert indexTZ() oder Sys.setenv() nur die Zeitzone und kalibriert die Zeit nicht auf die angegebene Zeitzone?

Wenn das der Fall ist, was kann ich tun, um die Zeit und die Zeitzone meines xts-Objekts zu ändern?

Mache ich etwas falsch?

+0

nicht sicher, ob dies Ihr Problem löst, aber BIN scheint nicht eine Zeitzone zu sein, die von R. unterstützen Sie könnten versuchen, einen geeigneten Namen der Zeitzone aus der Ausgabe von 'OlsonNames()' zu holen. – RHertel

+0

@RHertel Ich glaube nicht, du hast Recht '> Sys.time() [1]" 2016-03-23 ​​13: 15: 32.470 IST "' Einmal startete ich R, die Trennung zwischen der Zeit und der Zeit Zone ging weg. Aber das Problem besteht immer noch – UtdMan

+0

IST - Indische Standardzeit – UtdMan

Antwort

1

Wie in den Kommentaren erwähnt, ist "IST" keine gültige Zeitzone. Es empfiehlt sich, Zeitzonen im Format "Land/Stadt" anzugeben. Wenn Sie dies tun, werden die gedruckten Zeiten aktualisiert.

require(xts) 
Lines <- "datetime,MP,avgVWAP,TradePressure,Modify 
2015-11-30 03:45:01,0.0000000000,0.0000117703,37,107 
2015-11-30 03:45:02,0.0016475976,0.0004038842,11,30 
2015-11-30 03:45:03,0.0007009310,0.0013219980,13,34 
2015-11-30 03:45:04,-0.0003656419,-0.0002547382,11,0 
2015-11-30 03:45:05,-0.0004572404,-0.0003604543,4,0 
2015-11-30 03:45:06,0.0005486634,0.0003343666,7,-14" 
x <- as.xts(read.zoo(text=Lines,FUN=as.POSIXct,tz="GMT",header=TRUE,sep=",")) 
x 
#        MP  avgVWAP TradePressure Modify 
# 2015-11-30 03:45:01 0.0000000000 0.0000117703   37 107 
# 2015-11-30 03:45:02 0.0016475976 0.0004038842   11  30 
# 2015-11-30 03:45:03 0.0007009310 0.0013219980   13  34 
# 2015-11-30 03:45:04 -0.0003656419 -0.0002547382   11  0 
# 2015-11-30 03:45:05 -0.0004572404 -0.0003604543    4  0 
# 2015-11-30 03:45:06 0.0005486634 0.0003343666    7 -14 
indexTZ(x) <- "Asia/Kolkata" 
x 
#        MP  avgVWAP TradePressure Modify 
# 2015-11-30 09:15:01 0.0000000000 0.0000117703   37 107 
# 2015-11-30 09:15:02 0.0016475976 0.0004038842   11  30 
# 2015-11-30 09:15:03 0.0007009310 0.0013219980   13  34 
# 2015-11-30 09:15:04 -0.0003656419 -0.0002547382   11  0 
# 2015-11-30 09:15:05 -0.0004572404 -0.0003604543    4  0 
# 2015-11-30 09:15:06 0.0005486634 0.0003343666    7 -14