我有时间戳,我想改变这里未完成的年份。
在:
23-11-17 12:53:41 PM
之后:(我想要的方式)
23-11-2017 12:53:41 PM
答案 0 :(得分:3)
您可以使用from my_dir.my_file import *
的正则表达式方法:
gsub
当然,这有一个限制,它假设世纪总是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"