首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换format中的字符日期以显示四位年份格式

转换format中的字符日期以显示四位年份格式
EN

Stack Overflow用户
提问于 2020-09-10 12:14:58
回答 3查看 380关注 0票数 1

我有一个csv文件,显示日期为14-3月20日。这是一个日期-月-年格式。但在背景中,它显示为3/14/2020。

当我尝试把这个文件读到R中时,它是字符格式14-3月20日,我把它转换为as.Date(x,格式(%d-%h-%Y))。

问题是,在R中,日期显示年份为"20“(两位数)。我想把数据作为四位数的年份读入R,我不想添加字符串20来使其成为2020年,因为那里也可能有类似1948年的年份。对于%Y的年份,没有多少格式会有帮助。

是否有一种方法可以读取csv文件,例如日期为14/Mar/2020,还是在R中将年份变成四位数而不加20到年份的字符串?

代码语言:javascript
复制
Sample Data

c("12-Dec-14", "19-Dec-14", "12-Dec-14", "19-Dec-14", "12-Dec-14", 
"26-Dec-14")

Expected Output:

12-12-2014, 19-Dec-2014....

Note: In csv file it is stores as 12/12/2014 but formatted to show as 12-Dec-14. So when I pull the data in R it comes as 12-Dec-14
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-09-10 12:37:30

也许这能帮上忙

代码语言:javascript
复制
> strftime(as.Date(d,format = "%d-%b-%y"),format = "%d-%b-%Y")
[1] "12-Dec-2014" "19-Dec-2014" "12-Dec-2014" "19-Dec-2014" "12-Dec-2014"
[6] "26-Dec-2014"

数据

代码语言:javascript
复制
d <- c("12-Dec-14", "19-Dec-14", "12-Dec-14", "19-Dec-14", "12-Dec-14", 
"26-Dec-14")
票数 2
EN

Stack Overflow用户

发布于 2020-09-10 12:19:33

你想用%y。

来自strptime()的文档

没有世纪的

年(00-99)。在输入时,值00到68的前缀为20,而值为69至99的前缀为19 --这是2018年POSIX标准所指定的行为,但它也表示,“预计在未来版本中,从2位数的年份推断的默认世纪将发生变化”。

票数 0
EN

Stack Overflow用户

发布于 2020-09-10 12:35:43

可以使用as.Date将日期转换为日期类。

代码语言:javascript
复制
x <- c("12-Dec-14", "19-Dec-14", "12-Dec-14", "19-Dec-14", "12-Dec-14",  "26-Dec-14")
x1 <- as.Date(x, '%d-%b-%y')
x1
#[1] "2014-12-12" "2014-12-19" "2014-12-12" "2014-12-19" "2014-12-12" "2014-12-26"

如果需要特定格式的数据,请在日期值上使用format

代码语言:javascript
复制
x2 <- format(x1, '%d-%b-%Y')
x2
#[1] "12-Dec-2014" "19-Dec-2014" "12-Dec-2014" "19-Dec-2014" "12-Dec-2014" "26-Dec-2014"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63829471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档