Php 如何在R中找到给定日期和时区的夏季调整?

Php 如何在R中找到给定日期和时区的夏季调整?,php,r,timezone,dst,Php,R,Timezone,Dst,在PHP中(从5.2.0开始),我可以编写以下代码: //$t is timestamp of day I want to look at $tz=new DateTimeZone('America/New_York'); $transition = $tz->getTransitions($t,$t); if(!$transition || count($transition)==0)throw new Exception("Bad timezone") $offset=$transit

在PHP中(从5.2.0开始),我可以编写以下代码:

//$t is timestamp of day I want to look at
$tz=new DateTimeZone('America/New_York');
$transition = $tz->getTransitions($t,$t);
if(!$transition || count($transition)==0)throw new Exception("Bad timezone")
$offset=$transition[0]['offset'];   //This is seconds ahead of GMT.
      //I.e. -14400 in summer, -18000 in winter.
当我发现这个类/习语时,我几乎高兴得哭了;但是有没有一种方法可以在R中做同样的事情呢?或者我必须求助于我以前在PHP中所做的事情,这是我需要考虑的每个时区的夏季开始/结束日期数组的硬代码?
(顺便说一句,有关PHP代码的更多信息,请参阅:)

您可以为相同的日期和时间构建两个时间对象,一个在所需的时区,另一个在GMT,并查看它们的差异

# Winter: London uses GMT
> ISOdatetime(2012, 01, 01, 00, 00, 00, "Europe/London") - 
  ISOdatetime(2012, 01, 01, 00, 00, 00, "GMT")
Time difference of 0 secs

# Summer: London uses GMT+1
> ISOdatetime(2012, 08, 01, 00, 00, 00, "Europe/London") - 
  ISOdatetime(2012, 08, 01, 00, 00, 00, "GMT")
Time difference of -1 hours

您可以为相同的日期和时间构建两个时间对象,一个位于所需时区,另一个位于GMT,并查看它们的差异

# Winter: London uses GMT
> ISOdatetime(2012, 01, 01, 00, 00, 00, "Europe/London") - 
  ISOdatetime(2012, 01, 01, 00, 00, 00, "GMT")
Time difference of 0 secs

# Summer: London uses GMT+1
> ISOdatetime(2012, 08, 01, 00, 00, 00, "Europe/London") - 
  ISOdatetime(2012, 08, 01, 00, 00, 00, "GMT")
Time difference of -1 hours

使用
as.POSIXct
as.POSIXlt
可以获得此信息。例如:

tz = 'Europe/Madrid'
d1 <- as.POSIXct('2010-01-01 12:00:00',  tz = tz)
as.POSIXlt(d1)$isdst ## 0 since it's not DST
tz='欧洲/马德里'

d1使用
as.POSIXct
as.POSIXlt
可以获得此信息。例如:

tz = 'Europe/Madrid'
d1 <- as.POSIXct('2010-01-01 12:00:00',  tz = tz)
as.POSIXlt(d1)$isdst ## 0 since it's not DST
tz='欧洲/马德里'
d1感谢您的快速回复(它们都是一样的;我给奥斯卡打了勾,因为我已经在使用POSIXlt了)。我意识到我也可以一直用PHP来做这件事!感谢您的快速回复(它们是一样的;我给奥斯卡打了勾,因为我已经在使用POSIXlt了)。我意识到我也可以一直用PHP来做这件事!