在R中转换时间戳?
我有一列字符串,其值如下:在R中转换时间戳?,r,date,R,Date,我有一列字符串,其值如下: "Wed Apr 11 15:14:45 GMT+03:00 2018" 我想将其转换为以下格式的日期:dd/mm/YYYY hh:mm:ss 我已将用作.Date(),但它返回了一个错误: charToDate(x)中出错:字符串不在标准格式中 明确的格式 尝试了任何时候函数,它返回NA 请告知我应该如何将其转换为我需要的格式?我们本可以在您的时间戳数据上使用strtime,但格式不正确strtime不接受时区字符串作为输入,并且数字时区中有冒号。在下面的简短脚本
"Wed Apr 11 15:14:45 GMT+03:00 2018"
我想将其转换为以下格式的日期:dd/mm/YYYY hh:mm:ss
我已将用作.Date()
,但它返回了一个错误:
charToDate(x)
中出错:字符串不在标准格式中
明确的格式
尝试了任何时候
函数,它返回NA
请告知我应该如何将其转换为我需要的格式?我们本可以在您的时间戳数据上使用strtime
,但格式不正确strtime
不接受时区字符串作为输入,并且数字时区中有冒号。在下面的简短脚本中,我生成了一个strtime
可以处理的时间戳
x <- "Wed Apr 11 15:14:45 GMT+03:00 2018"
y <- gsub("(.*)[A-Z]{3}([+-]\\d{2}):(\\d{2})(.*)", "\\1\\2\\3\\4", x)
y
tz <- gsub(".*([A-Z]{3}).*", "\\1", x)
tz
output <- strptime(y, "%a %b %d %H:%M:%S %z %Y", tz)
output
strftime(output, format = "%d/%m/%Y %H:%M:%S", tz)
[1] "Wed Apr 11 15:14:45 +0300 2018"
[1] "GMT"
[1] "2018-04-11 12:14:45 GMT"
[1] "11/04/2018 12:14:45"
xformat
用于输出,而不是解析。非常感谢您的出色解决方案,我正在尝试理解第二行中的正则表达式。总之,非常简单和天才!对gsub
的第一次调用删除了GMT
和冒号,留下了一个strtime
可以解析的时间戳。对gsub
的第二次调用提取了GMT
,而strtime
希望将其作为一个单独的参数,而不是嵌入时间戳中。您没有留下任何文字,您是一位真正的专业人士,非常感谢!我很高兴能从你这样的专业人士那里得到答案@steves谢谢,但是请不要搞错。[A-Z]{3}
与时区字符串匹配的人。