R语言 如何从复杂日期中获取月份和年份

8fsztsew  于 2023-01-03  发布在  其他
关注(0)|答案(3)|浏览(135)

我的日期列显示如下:“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

任何帮助都将不胜感激。

gc0ot86w

gc0ot86w1#

%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就可以工作了

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

bxgwgixi2#

尝试parse_date包中的parse_date()函数:

library(parsedate)
parse_date(x)

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

wnvonmuf3#

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

函数的作用是:将日期和时间对象转换成字符串形式。它接受一个或多个格式化代码的输入,并返回字符串形式。
% B表示完整的月份名称,如January、February等。

相关问题