R - 日期格式

时间:2016-04-15 09:36:51

标签: r formatting format

我面临着日期格式化问题,无法找到解决方案。这是代码 - 第二个日期不是我想要的格式。

date1
#[1] "01. Nov 11"

ndate1 <- as.Date(date1, "%d. %B %y")
ndate1
#[1] "2011-11-01"

date2
#[1] "26-May-13"

ndate2 <- as.Date(date2, "%d-%B-%y")
ndate2
#[1] NA

2 个答案:

答案 0 :(得分:1)

这很可能是由于与区域设置不兼容。如果Sys.getlocale("LC_TIME")的输出与英语设置不对应,例如"en_US.UTF-8""en_GB.UTF-8",则缩写“May”(巧合的是,在这种情况下甚至不是缩写)在大多数(所有?)其他设置中无法识别。相比之下,“Nov”是11月份的几种语言的有效缩写。这可以解释为什么date1的第一个案例不会造成麻烦。

我们可以试试这个:

Sys.setlocale("LC_TIME", "en_US.UTF-8")
date2 <- "26-May-13"
ndate2 <- as.Date(date2, "%d-%b-%y")
ndate2
#[1] "2013-05-26"

答案 1 :(得分:1)

您可以使用?常量页面上的示例确定语言环境中的完整或缩写月份名称:

 format(ISOdate(2000, 1:12, 1), "%b")

每次?strptime输入时,您可以使用"%B""%b"作为缩写或完整名称。

相关问题