我有一个描述中欧夏令时间日期和时间的字符串: "2021-09-23 12:00:00"。 事实上,我有一整列这样的时间点。 由于某些原因,我必须使用'lubridate'包中的函数处理这些时间。使用'as_datetime'函数,我可以得到:
t0 = "2021-09-23 12:00:00"
t1 = as_datetime(t0); t1
## [1] "2021-09-23 12:00:00 UTC"
也就是说,
as_datetime
函数使用给定的小时和分钟,并添加世界标准时间"UTC"作为时区。而提供时区CEST则会产生不同的结果。t1 = as_datetime(t0, tz = "CEST"); t1
## [1] "2021-09-23 10:00:00 CEST"
也就是说,改变了时间,这不是我想要的。
我想要得到的(我真正需要的)是“2021-09-23 12:00:00 CEST”,也就是只改变时区而不改变时间。
我尝试了force_tz
和with_tz
,但那也不起作用。
我还想知道的是为什么'lubridate'会将12:00:00 UST转换为10:00:00 CEST,因为CEST与GMT+2相同,而UTC是GMT+0,所以结果实际上应该相反。
感谢任何帮助。
as_datetime(t0, tz="")
时,它会自动返回"2021-09-23 12:00:00 CEST",因此系统似乎知道CEST是什么,以及这是我现在的时区。我不知道为什么在MS Windows上会有所不同。 - Hans W.