You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将字符型数据转为Date类?as.Date返回NA的解决方法

解决as.Date转换日期返回NA的问题

问题原因

你使用的%B格式符对应英文完整月份名称(比如"October"),但R默认的**区域设置(locale)**如果不是英文,就无法识别这类英文月份名,最终返回NA。

解决方法

方法1:临时修改区域设置

转换日期前临时将时间区域设置为英文,转换完成后可恢复原设置:

# 保存当前时间区域设置
old_locale <- Sys.getlocale("LC_TIME")
# Windows系统用"English_US.1252",Linux/macOS用"en_US.UTF-8"
Sys.setlocale("LC_TIME", "English_US.1252")

# 执行日期转换
my_date <- "October 15, 2018"
as.Date(my_date, format = "%B %d, %Y")

# 恢复原区域设置
Sys.setlocale("LC_TIME", old_locale)

方法2:用lubridate包简化操作

lubridate包的mdy()函数可以自动识别"月-日-年"格式的英文日期,无需手动指定格式,也不受区域设置影响:

# 首次使用先安装包
install.packages("lubridate")
library(lubridate)

# 直接转换
my_date <- "October 15, 2018"
mdy(my_date)

内容的提问来源于stack exchange,提问作者MinChul Park

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 05:08:10