将带有月份缩写的字符串转换为 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)