【发布时间】:2015-09-01 09:18:36
【问题描述】:
之前也有关于这个的问题 here、here、here、here
使用所有这些信息,下面应该可以工作,但似乎有些翻译损失。
a <- c(1433097000, 1433183400, 1433269800, 1433356200, 1433442600, 1433529000)
a
# [1] 1433097000 1433183400 1433269800 1433356200 1433442600 1433529000
b <- as.Date(as.POSIXct(a, origin='1970-01-01', tz='Asia/Kolkata'))
b <- as.numeric(as.POSIXct(b, tz='Asia/Kolkata', format="%Y-%m-%d", origin='1970-01-01'))
b
# [1] 1433030400 1433116800 1433203200 1433289600 1433376000 1433462400
==== 编辑:
使用 tz='Asia/Kolkata',a 的时间即将到来,00:00:00
strftime(as.POSIXct(a, origin='1970-01-01', tz='Asia/Kolkata'), format="%Y-%m-%d %H:%M:%S")
[1] "2015-06-01 00:00:00" "2015-06-02 00:00:00" "2015-06-03 00:00:00" "2015-06-04 00:00:00" "2015-06-05 00:00:00"
[6] "2015-06-06 00:00:00"
【问题讨论】:
-
a和b之间的差异是 66600 秒,即 (18*60*60) + (30*60)。这是 00:00(b中的时间)和 18:30(a中的时间)之间的差异。 -
没有得到你@Pascal。对于 tz='IST',a 中的时间也是 00:00 而不是 18:30。
-
请比较
as.POSIXct(a, tz='IST', origin='1970-01-01')和as.POSIXct(b, tz='IST', origin='1970-01-01'),转换为数值后。 -
"IST" %in% OlsonNames()returnFALSE,是不是 tz 参数有错字? (或者您是否使用特定版本的表格?) -
谢谢@Tensibai。问题依然存在。更新了上面的问题。