3

わからないことがあります。他のタイムゾーンの日付を変換しようとしています。日付は 8601-ISO 形式です。私はこれに従いました

pb.txt <- "2012-09-11T21:23:20Z"
pb.date <- as.POSIXct(pb.txt, tz="UTC")
format(pb.date, tz="WEST",usetz=TRUE)
[1] "2012-09-11 WEST"

タイムスタンプではなく日付のみが表示されるのはなぜですか? 私も試しました:

pb.date <- as.POSIXct(pb.txt, origin=ISOdatetime(2012,09,11,21,23,20))
format(pb.date, tz="WEST",usetz=TRUE)
[1] "2012-09-10 22:00:00 WEST

より良いですが、タイムスタンプは丸められます。8601-ISO datetime を完全に変換するには?

4

2 に答える 2

10

正しい形式を使用してください:

as.POSIXct(pb.txt, "%Y-%m-%dT%H:%M:%S", tz="UTC")
[1] "2012-09-11 21:23:20 UTC"
于 2013-03-19T13:43:19.997 に答える
1

@ JoshuaUlrichの回答に加えて、夏時間のタイムゾーンを使用しないでください。通常のタイムゾーンを使用してください。選択した日が夏時間の場合、システムは自動的に変換します。

ジョシュアpb.date <- as.POSIXct(pb.txt, "%Y-%m-%dT%H:%M:%S", tz="UTC")の答えによると、これは失敗します:

format(pb.date, tz="WEST",usetz=TRUE)
[1] "2012-09-11 21:23:20 UTC"

しかし、これはしません:

format(pb.date, tz="WET", usetz=TRUE)
[1] "2012-09-11 22:23:20 WEST"
于 2013-03-19T13:54:42.100 に答える