更改时间戳中的值

时间:2017-12-26 06:25:03

标签: r date

我有时间戳,我想改变这里未完成的年份。

在:

23-11-17  12:53:41 PM

之后:(我想要的方式)

23-11-2017 12:53:41 PM

2 个答案:

答案 0 :(得分:3)

您可以使用from my_dir.my_file import * 的正则表达式方法:

gsub

Demo

当然,这有一个限制,它假设世纪总是x <- "23-11-17 12:53:41 PM" y <- gsub("(\\d{2}-\\d{2})-(\\d{2}) (\\d{2}:\\d{2}:\\d{2} (?:AM|PM))", "\\1-20\\2 \\3", x) y [1] "23-11-2017 12:53:41 PM" ,这可能不正确。一种更健壮的方法是转换为某个R日期类,然后使用4位数年份的格式掩码转换回字符串。

答案 1 :(得分:2)

我们可以转换为datetime,然后转换为20

format

或使用format(as.POSIXct(str1, format = "%d-%m-%y %I:%M:%S %p"), "%d-%m-%Y %I:%M:%S %p") #[1] "23-11-2017 12:53:41 PM"

regex

数据

sub("-(\\d{2})\\s+", "-20\\1 ", str1)
#[1] "23-11-2017 12:53:41 PM"