在R中的POSIXlt转换期间删除时区

Sim*_*mbu 4 timezone datetime r posixlt

我的数据框中有一列为datetime(factor),其值为"15-10-2017 16:41:00".

我希望这些数据转换为"2017-10-15 16:41:00".当我尝试转换它时,我也将时区作为输出.

我尝试使用tz ="",usetz = F但没有用.有什么建议 ?

码:

as.POSIXlt( "16点41分00秒15-10-2017",格式= "%D-%间 - %Y%H:%M:%S")[1]"二○一七年十月十五日16时41分:00 IST"

Pro*_*bel 6

从帮助页面as.POSIXlt:

""是当前时区

这是默认值.

这就是为什么它不起作用.您可以通过这种方式删除时区信息,并且在打印时不会显示:

my_datetime <- as.POSIXlt("15-10-2017 16:41:00",format = "%d-%m-%Y %H:%M:%S")
my_datetime$zone <- NULL
my_datetime
Run Code Online (Sandbox Code Playgroud)

但我不明白你为什么要那样做.如果您不想担心时区,则应转换为GMT.还lubridate包有一个很好的force_tz功能,如果你要迫使一些特定的时区.


r_a*_*anb 5

如果您可以将日期时间存储为字符而不是 POSIXlt,那么您可以使用strftime()

my_datetime <- as.POSIXlt("15-10-2017 16:41:00",format = "%d-%m-%Y %H:%M:%S")
strftime(my_datetime)
Run Code Online (Sandbox Code Playgroud)