对于日志记录目的,R脚本如何在UTC时区中以此格式获取ISO 8601字符串的当前日期和时间:
2015-12-31T14:26:56.600374+00:00
Run Code Online (Sandbox Code Playgroud)
as.POSIXlt 似乎是解决方案,文档声称它接受格式参数,但我无法做到这一点(在R版本3.1.3上):
> as.POSIXlt(Sys.time(), "UTC", "%Y-%m-%dT%H:%M:%S")
[1] "2015-04-08 14:37:58 UTC"
> as.POSIXlt(Sys.time(), tz="UTC", format="%Y-%m-%dT%H:%M:%S")
[1] "2015-04-08 14:38:02 UTC"
> as.POSIXct(Sys.time(), tz="UTC", format="%Y-%m-%dT%H:%M:%S")
[1] "2015-04-08 11:38:22 BRT"
Run Code Online (Sandbox Code Playgroud) 我很难弄清楚为什么我的列和日期时间列的过滤器显示错误的日期和时间。
我的数据看起来像这样(dput 在下面的闪亮代码中):
DATUM NUMMER
1 2017-03-29 00:00:02 19
2 2017-03-29 00:00:36 20
3 2017-03-29 00:00:40 21
4 2017-03-29 00:00:44 22
5 2017-03-29 00:00:47 23
6 2017-03-29 00:00:51 24
7 2017-03-29 00:00:55 25
8 2017-03-29 00:00:59 26
9 2017-03-29 00:01:03 27
10 2017-03-29 00:01:07 28
Run Code Online (Sandbox Code Playgroud)
正如我们所看到的,这没什么特别的。在闪亮的 using 包中显示此数据后DT,数据如下所示:
显示有2小时的差异,没有任何原因......
我的第一个方法是检查我的Sys.time()
> Sys.time()
[1] "2017-03-30 09:09:40 CEST"
Run Code Online (Sandbox Code Playgroud)
这是正确的,第二种方法是深入研究DT文档,我在那里找到了该函数:formatDate(1, method = 'toLocaleString')。我已经使用过它,日期时间字段的显示似乎很好(见下图),但是顶部过滤器仍然显示错误的日期时间值......
这是可重现的示例:
library(shiny)
library(DT)
data <- …Run Code Online (Sandbox Code Playgroud)