2016-03-23 39 views
1

"GMT" de saat dilimi ile bir xts nesnesi var, bu web sitesinde gördüğüm kadarıyla saat dilimini değiştirmek için indexTZ() kullanabilirsiniz. Mümkün olan her şeyi denedim, önce "GMT" yi belirledikten sonra "IST" ye değiştirdim. Zaman damgalarını Tarih Saat biçimine ilk defa dönüştürdüğümde "IST" i belirtmek: DF$DateTime= as.POSIXct(DF$DateTime/(10^9), origin="1970-01-01", tz = "IST") fakat yine de bana "GMT" içinde zaman kazandırıyor. Temel olarak hiçbir şey olmaz.Neden indexTZ() çalışıyor ve saati değiştirmiyor?

> 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). 

Saat ve saat dilimim arasında bir bağlantı olduğunu farkettim. Zaman "GMT" olduğunu ancak görüntülenen zaman dilimi "IST" olduğunu

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

Yani sistem saat dilimi ilk yardım edebilir değişen düşünce, ama oldu. Yine hiçbir şey olmaz.

> 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). 

Bunun neden olduğu hakkında bir fikriniz var mı?

indexTZ() veya sadece saat dilimini değiştirir ve belirtilen zaman dilimine zaman ayarlamaz mı?

Durum buysa, xts nesnesinin saat ve saat dilimini değiştirmek için ne yapabilirim?

Yanlış bir şey yapıyorum?

+0

emin değilim. – RHertel

+0

@RHertel Doğru olmadığınızı sanmıyorum '> Sys.time() [1]" 2016-03-23 ​​13: 15: 32.470 IST "' Bir kez, R'yi yeniden başlattım, zaman ve zaman arasındaki bağlantı kesildi bölge gitti. Ancak sorun hala devam ediyor – UtdMan

+0

IST - Hint Standart Saati – UtdMan

cevap

1

Açıklamalarda belirtildiği gibi, "IST" geçerli bir zaman dilimi değildir. Ülke/Şehir formatında saat dilimlerini belirtmek en iyisidir. Bunu yaparsanız, yazdırılan zamanlar güncellenir. Bu sorunu çözer ama IST Sen OlsonNames `çıkışından diliminin uygun bir isim almaya deneyebilirsiniz R. tarafından desteklenen bir zaman dilimi gibi görünüyor yoksa`) (

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 
İlgili konular