从GMT转换为R时的夏令时帐户

从GMT转换为R时的夏令时帐户,r,datetime,dst,posixct,R,Datetime,Dst,Posixct,我已经在stackoverflow上搜索了大约2个小时,我似乎无法回答这个非常基本的问题。我不确定这是不是我期望事情如何运作,或者这是问题所在。我还没有在这里找到这个问题,但是如果它被记录下来了,而我在过去的几个小时里没有找到它,请发布这个问题的链接,因为我没有找到它 我一直在使用这个网站,作为指导告诉我夏令时(DST)何时生效 我在冬季的UTC-5或美国东部时间,夏季的UTC-4或美国东部时间-加拿大/东部时区 我有在格林尼治时间收集的数据,我想把它们转换成当地时间,考虑夏令时。我制作了一个测

我已经在stackoverflow上搜索了大约2个小时,我似乎无法回答这个非常基本的问题。我不确定这是不是我期望事情如何运作,或者这是问题所在。我还没有在这里找到这个问题,但是如果它被记录下来了,而我在过去的几个小时里没有找到它,请发布这个问题的链接,因为我没有找到它

我一直在使用这个网站,作为指导告诉我夏令时(DST)何时生效

我在冬季的UTC-5或美国东部时间,夏季的UTC-4或美国东部时间-加拿大/东部时区

我有在格林尼治时间收集的数据,我想把它们转换成当地时间,考虑夏令时。我制作了一个测试数据帧(“tzs”,如下)。根据我工作的网站,列“DT”以GMT显示日期和时间,本地时间列显示本地时间应该是什么

我尝试了以下更改:

带底座:

attr(tzs$DT, "tzone") <- "Canada/Eastern"

attr(tzs$DT,“tzone”)问题是DST发生在本地时区的指定时间。您的示例预计加拿大/东部的DST将在格林尼治标准时间凌晨2点生效。

我担心是这样的。我会尝试一下,然后删除这个问题,如果是这样的话。。。这可以接受吗?@EricaN:没有必要删除你的问题。。。但是没有人会阻止你
tzs$DT <- with_tz(tzs$DT, tz = "Canada/Eastern")
> df
                    DT           Localtime
1  2002-10-27 02:00:00 2002-10-26 21:00:00
2  2003-04-06 01:59:59 2003-04-05 20:59:59
3  2003-04-06 02:00:00 2003-04-05 22:00:00
4  2003-10-26 01:59:59 2003-10-25 21:59:59
5  2003-10-26 02:00:00 2003-10-25 21:00:00
6  2004-04-04 01:59:59 2004-04-03 20:59:59
7  2004-04-04 02:00:00 2004-04-03 22:00:00
8  2004-10-31 01:59:59 2004-10-30 21:59:59
9  2009-11-01 02:00:00 2009-30-31 21:00:00
10 2010-03-14 01:59:59 2010-03-13 20:59:59
11 2010-03-14 02:00:00 2010-03-13 22:00:00
12 2010-11-07 01:59:59 2010-11-06 21:59:59
13 2010-11-07 02:00:00 2010-11-06 21:00:00
14 2011-03-13 01:59:59 2011-03-12 20:59:59
15 2011-03-13 02:00:00 2011-03-12 22:00:00
16 2011-11-06 01:59:59 2011-11-05 21:59:59

tzs <- structure(list(DT = structure(c(1035684000, 1049594399, 1049594400, 
1067133599, 1067133600, 1081043999, 1081044000, 1099187999, 1257040800, 
1268531999, 1268532000, 1289095199, 1289095200, 1299981599, 1299981600, 
1320544799), class = c("POSIXct", "POSIXt"), tzone = "GMT"), 
    Localtime = structure(c(1L, 2L, 3L, 5L, 4L, 6L, 7L, 8L, 9L, 
    10L, 11L, 13L, 12L, 14L, 15L, 16L), .Label = c("2002-10-26 21:00:00", 
    "2003-04-05 20:59:59", "2003-04-05 22:00:00", "2003-10-25 21:00:00", 
    "2003-10-25 21:59:59", "2004-04-03 20:59:59", "2004-04-03 22:00:00", 
    "2004-10-30 21:59:59", "2009-30-31 21:00:00", "2010-03-13 20:59:59", 
    "2010-03-13 22:00:00", "2010-11-06 21:00:00", "2010-11-06 21:59:59", 
    "2011-03-12 20:59:59", "2011-03-12 22:00:00", "2011-11-05 21:59:59"
    ), class = "factor")), .Names = c("DT", "Localtime"), row.names = c(NA, 
16L), class = "data.frame")