エポックタイムをPOSIXとして保存しておくと、より簡単に操作できます。
library(dplyr)
library(lubridate)
df <- tibble(
time_epoch = as.POSIXct(
c(1460230930,1460231830, 1459929664), tz = "UTC", origin = "1970-01-01"
),
time_zone = c("UTC-12:00", "UTC+10:00", "UTC-09:00")
)
df <- mutate(df,
time_zone = as.numeric(substr(time_zone, 4, 6)),
time_local = as.character(time_epoch + hours(time_zone))
)
df
# # A tibble: 3 x 3
# time_epoch time_zone time_local
# <dttm> <dbl> <chr>
# 1 2016-04-09 21:42:10 -12 2016-04-09 11:42:10
# 2 2016-04-09 21:57:10 10 2016-04-10 09:57:10
# 3 2016-04-06 10:01:04 -9 2016-04-06 03:01:04
注:
私は十分なだけ、この例で使用する、正しくUTC文字列から変換 を一般化するには努力をしていません。理想的には、 はあなたがオルソンの名前ではなく、オフセットの、あなたはtime_local
が文字として保存されているこれらの here
を得ることができますしたい、あなたが複数のタイムゾーンと日付/時刻の列を格納することはできません、彼らは で保存されています単一の値を参照してくださいattributes(df$time_epoch)
attributes(df$time_epoch)
# $class
# [1] "POSIXct" "POSIXt"
#
# $tzone
# [1] "UTC"