如何从复杂的日期中获取月份和年份

3

我的日期列呈现的格式为:"2016年5月27日 上午10:08:13"

我尝试了很多方法,但结果都是一列NA。

我已经尝试过很多方法,比如:

df$Create_Month <- format(as.Date(df$`Create Date`, format="%d/%b/%Y %I:%M:%s %p"),"%Y-%m"))
df$Create_Month <- format(as.POSIXct(df$`Create Date`, format="%d/%b/%Y %I:%M:%s %p"),"%Y-%m"))
df[,"Create_Month"] <- format(as.Date(df$`Create Date`, format="%d/%b/%Y %I:%M:%s %p"),"%Y-%m"))
df[,"Create_Month"] <- format(df$`Create Date`,"%Y-%m"))

还有这些变种,包括dplyr piping,mutate,lubridate等。

终端的输出是:

R> format(df$`Create Date`,"%Y %m"))
Error in format.default(Infocards$`Create Date`, "%Y %m") : 
invalid 'trim' argument

R> as.POSIXct("27 May 2016 10:08:13 AM", tz="EST", "%d %b %Y %i:%m:%s %p")
[1] NA

R> as.Date("27 May 2016 10:08:13 AM", "%d %b %Y %i:%m:%s %p")
[1] NA

非常感谢您的帮助。

3个回答

2

%i%m%s应该大写

as.POSIXct("27 May 2016 10:08:13 AM", tz="EST", "%d %b %Y %I:%M:%S %p")
[1] "2016-05-27 10:08:13 EST"

通过这种方式,格式将会起作用。

format(as.POSIXct("27 May 2016 10:08:13 AM", tz="EST", 
  "%d %b %Y %I:%M:%S %p"), "%Y %m")
[1] "2016 05"

1
谢谢,这正是我想要的。 - Lawrence Sproul

1
尝试使用parse_date包中的parse_date()函数:
library(parsedate)
parse_date(x)

[1] "2016-05-27 10:08:13 UTC"

0
import datetime
currentdate=datetime.date.today()
currentmonthName=currentdate.strftime("%B")
print(currentdate)
print(currentmonthname)

strftime()函数用于将日期和时间对象转换为字符串表示形式。它接受一个或多个格式化代码的输入,并返回字符串表示形式。

%B表示完整的月份名称,如一月、二月等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接