【问题标题】:Why is as.POSIXct adding 1 hour to my time?为什么 as.POSIXct 会增加我的时间 1 小时?
【发布时间】:2014-03-26 15:30:57
【问题描述】:

下面是我的行为怪异的 R 代码。我预计输入的时间是 22:00,但我得到了 23:00。

as.POSIXct(chron(dates="01/04/06",times="22:00:00"),tz="CET")
[1] "2006-01-04 23:00:00 CET"

在我的代码的下一行中,我使用结果从 xts/zoo 对象中选择一个窗口:因此,忽略错误并输入 21:00(在上面)没有用,因为它返回了错误的数据。使用上面代码的结果进行窗口化会返回正确的值。

head(qs<-as.zoo(window(Q,start=as.POSIXct(chron(dates="01/04/06",times="22:00:00"),tz="CET"),end=as.POSIXct(chron(dates="01/05/06",times="21:00:00"),tz="CET"))))

这是一组数据样本 (Q):

Stage.Qm  Flow.Qm Stage.QmDB Flow.QmDB Stage.Q1000 Flow.Q1000 Stage.Q1000DB Flow.Q1000DB
2006-01-04 23:00:00 541.1589 5.636957   541.1592  5.646017    541.5708   20.44692      541.5708     20.44692
2006-01-04 23:01:00 541.1589 5.637268   541.1592  5.645087    541.5701   20.41321      541.5701     20.41321
2006-01-04 23:02:00 541.1589 5.638604   541.1588  5.635806    541.5701   20.40946      541.5701     20.40946
2006-01-04 23:03:00 541.1589 5.638979   541.1588  5.635694    541.5704   20.42712      541.5704     20.42712
2006-01-04 23:04:00 541.1589 5.639619   541.1590  5.640691    541.5710   20.45848      541.5710     20.45848
2006-01-04 23:05:00 541.1590 5.640662   541.1591  5.641682    541.5715   20.47893      541.5715     20.4789

【问题讨论】:

  • 在文档中您可以阅读:“chron 对象的当前实现不处理时区也不处理夏令时。”因此,一个解决方案是不要在这里使用chron
  • 谢谢。我已更改为as.POSIXct(strptime("2006-01-04 22:00:00", "%Y-%m-%d %H:%M:%S")),这给出了所需的[1] "2006-01-04 22:00:00 CET"
  • 1.你不需要strptime 那里。 2. 我建议始终明确设置时区。 3. 随意写下您的问题的答案。
  • 您能否使用我的代码(在上面的评论中)并举个例子。谢谢:)

标签: r time


【解决方案1】:

在文档中您可以阅读:“chron 对象的当前实现不处理时区也不处理夏令时。”因此,一个解决方案是不要在这里使用chron

只需使用as.POSIXct.default:

as.POSIXct("2006-01-04 22:00:00", "%Y-%m-%d %H:%M:%S", tz="CET")
[1] "2006-01-04 22:00:00 CET"

【讨论】:

  • 我有一个相关的问题,上面没有回答。你能告诉我这里发生了什么吗? &gt; q1 2015-12-31 22:00:00 40.99648 &gt; q2 2015-12-31 22:00:00 40.99648 &gt; cbind(q1,q2) q1 q2 2015-12-31 23:00:00 40.99648 40.99648 当我执行 cbind 或我在 q1 和 q2 上执行 nay 操作时,时间会改变 1 小时,包括保存到列表中。
  • @jjunju 如果您有新问题,请提出新问题。这样做时不要忘记提供reproducible example
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-22
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2018-10-30
相关资源
最近更新 更多