2009-09-08 7 views

答えて

11

まず、POSIXctオブジェクトにロンドン時間に変換します。その後、別の時間帯に日付を印刷するformatを使用

pb.txt <- "2009-06-03 19:30" 
pb.date <- as.POSIXct(pb.txt, tz="Europe/London") 

> format(pb.date, tz="America/Los_Angeles",usetz=TRUE) 
[1] "2009-06-03 11:30:00 PDT" 

いくつかのトリックは、右の時間を見つけることにあります。ゾーン識別子を使用します。革命のブログで、この記事で詳細:Converting time zones in R: tips, tricks and pitfalls

+0

フォーマットは、posixオブジェクトを文字に変換します。 – obesechicken13

+0

この変換は昼光の節約の調整を行いますか? –

+0

はい場所がタイムゾーンデータベースにある場合、適切な増分/減分を行います。 –

39

変更] POSIXct 'オブジェクトのTZONE属性:これはまだPOSIXctオブジェクトであることを

> pb.txt <- "2009-06-03 19:30" 
> pb.date <- as.POSIXct(pb.txt, tz="Europe/London") 
> attributes(pb.date)$tzone <- "America/Los_Angeles" 
> pb.date 
[1] "2009-06-03 11:30:00 PDT" 

は注意、TZONEは変更されている、およびオフセットを補正あり適用:

> attributes(pb.date) 
$class 
[1] "POSIXct" "POSIXt" 

$tzone 
[1] "America/Los_Angeles" 
+0

受け入れられた回答のコメント(http://blog.revolution-computing.com/2009/06/converting-time-zones.html)に掲載されているリンクを確認することを忘れないでください。私はESTを使い、この答えがうまくいかないと思った! – kaoD

16

パッケージlubridateには、タイムゾーンを変換する2つの機能があります。ヘルプページによると:


force_tzは、新しいタイムゾーンにxと同じクロックの時間を持っている日時を返します。

force_tz(time, tzone = "America/Los_Angeles") 


with_tz瞬間が表示される時間帯を変更します。瞬時に表示される時計時刻は変わりますが、説明されている瞬間は同じです。

with_tz(time, tzone = "America/Los_Angeles") 
+2

他の方法よりもはるかにクリーンです。 –

関連する問題