Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何优雅地将datetime从十进制转换为“%d、 %m.%y%H:%m:%S";?_R_Date_Split - Fatal编程技术网

R 如何优雅地将datetime从十进制转换为“%d、 %m.%y%H:%m:%S";?

R 如何优雅地将datetime从十进制转换为“%d、 %m.%y%H:%m:%S";?,r,date,split,R,Date,Split,我正在做一个自动记录数据的实验。软件生成的时间戳格式为41149.014850。我想将此十进制时间戳转换为28.08.2012 00:21:23。我怎样才能在R中最优雅地做到这一点 我试着使用函数strsplit和函数as.Date以及times来指定原点。但是没有用。我无法将时间戳拆分为两个数字,我可以使用函数as.Date和times访问这两个数字 下面是一些演示代码: myDatetime <- c(41149.004641, # 28.08.2012 00:06:41 41149

我正在做一个自动记录数据的实验。软件生成的时间戳格式为
41149.014850
。我想将此十进制时间戳转换为
28.08.2012 00:21:23
。我怎样才能在R中最优雅地做到这一点

我试着使用函数
strsplit
和函数
as.Date
以及
times
来指定原点。但是没有用。我无法将时间戳拆分为两个数字,我可以使用函数
as.Date
times
访问这两个数字

下面是一些演示代码:

myDatetime <- c(41149.004641, # 28.08.2012  00:06:41
41149.009745, # 28.08.2012  00:14:02
41149.014850, # 28.08.2012  00:21:23
41149.019954) # 28.08.2012  00:28:44

## not working out for me
Dat.char <- as.character(myDatetime)
date.split <- strsplit(Dat.char, split = "\\.")
## how to proceed from here, if it is a good way at all

myDatetime您的日期是类似Excel的日期格式(1900年1月1日之后的几天),因此需要将其转换为R日期格式。然后可以将其转换为日期时间格式(
POSIXct

#首次转换为R日期

datetime这很接近:数字表示自1900年1月1日起的秒数:

as.POSIXct(x*3600*24, origin=as.Date("1900-01-01")-2, tz="UTC")
[1] "2012-08-28 01:06:40 BST" "2012-08-28 01:14:01 BST" "2012-08-28 01:21:23 BST"
[4] "2012-08-28 01:28:44 BST"
那里还有一个时区偏移

as.POSIXct(x*3600*24, origin=as.Date("1900-01-01")-2, tz="UTC")
[1] "2012-08-28 01:06:40 BST" "2012-08-28 01:14:01 BST" "2012-08-28 01:21:23 BST"
[4] "2012-08-28 01:28:44 BST"