将带有月份缩写的字符串转换为 POSIXlt 的问题
Problem to convert string with month abbreviation to POSIXlt
我尝试使用 POSIXlt
将 Excel 日期字符转换为日期时间 class。这是我的数据示例:"01:56:00 06-Apr-2017"
.
对于format
,我使用的字符串给出了strptime
所使用的日期时间格式。
我尝试了 as.POSIXlt(new_dtime, format = "%H:%M:%S %d-%b-%Y")
,但结果是一堆 NA
。我确信问题与月份缩写有关,尽管我按照 strptime
的建议使用了 %b
。有什么帮助吗?
我猜测这是一个语言环境问题:从 ?strptime
开始,%b
表示“[a]缩写月份名称 在当前语言环境中这个平台”(强调)。 "Apr" 是 April 在英语语言环境中的缩写。 This question 建议以下解决方案:
str1 <- "01:56:00 06-Apr-2017"
orig_locale <- Sys.getlocale("LC_TIME")
Sys.setlocale("LC_TIME", "C")
as.POSIXct(str1, format = "%H:%M:%S %d-%b-%Y")
Sys.setlocale("LC_TIME", orig_locale)
我尝试使用 POSIXlt
将 Excel 日期字符转换为日期时间 class。这是我的数据示例:"01:56:00 06-Apr-2017"
.
对于format
,我使用的字符串给出了strptime
所使用的日期时间格式。
我尝试了 as.POSIXlt(new_dtime, format = "%H:%M:%S %d-%b-%Y")
,但结果是一堆 NA
。我确信问题与月份缩写有关,尽管我按照 strptime
的建议使用了 %b
。有什么帮助吗?
我猜测这是一个语言环境问题:从 ?strptime
开始,%b
表示“[a]缩写月份名称 在当前语言环境中这个平台”(强调)。 "Apr" 是 April 在英语语言环境中的缩写。 This question 建议以下解决方案:
str1 <- "01:56:00 06-Apr-2017"
orig_locale <- Sys.getlocale("LC_TIME")
Sys.setlocale("LC_TIME", "C")
as.POSIXct(str1, format = "%H:%M:%S %d-%b-%Y")
Sys.setlocale("LC_TIME", orig_locale)