首页 > 解决方案 > 在 R 中运行代码时如何设置时区?

问题描述

我目前位于"Europe/Helsinki"时区,并希望通过美国的服务器运行代码并具有"America/New_York"时区。当我在我的计算机上运行代码时,我经常使用Sys.time()Sys.Date()函数。我知道当将代码运行在服务器上时,它将"America/New_York"在这两个函数中使用时区,但是,我的代码逻辑假定"Europe/Helsinki"时区。我怎么能每次都这样做,Sys.time()并且会在时区Sys.Date()显示输出"Europe/Helsinki"

我发现options(tz="Europe/Helsinki") 在运行完整代码之前使用可以解决问题,但不确定它是否会有所帮助。lubridate在包中也找到了解决方案with_tz(Sys.time(), "Europe/Tallinn"),但是如果使用with_tz(Sys.Date(), "Europe/Tallinn")输出也会显示时间03:00:00 EEST。我也试过as.POSIXct(with_tz(Sys.Date(), "Europe/Helsinki"), "%Y-%m-%d", tz = "Europe/Helsinki")了,但这次也出现了。

在我的情况下使用什么更好?

例子:

  df<-subset(df, date == Sys.Date())

  if(hour(Sys.time()) >=9  & hour(Sys.time()) <= 18){
    
    DOtask1
  } 
  else {
    DOtask2
  }

标签: rtime

解决方案


推荐阅读