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

Windows 11部分区域设置下R语言strptime解析Sep缩写失效如何解决?

区域设置导致的strptime日期解析异常问题

复现代码

library(dplyr)

txt <- c('Jan 1 2026 12:00AM', 'Feb 1 2026 12:00AM', 'Mar 1 2026 12:00AM',
         'Apr 1 2026 12:00AM', 'May 1 2026 12:00AM', 'Jun 1 2026 12:00AM',
         'Jul 1 2026 12:00AM', 'Aug 1 2026 12:00AM', 'Sep 1 2026 12:00AM',
         'Oct 1 2026 12:00AM', 'Nov 1 2026 12:00AM', 'Dec 1 2026 12:00AM')

pos <- strptime(txt, '%b%d%Y%I:%M%p')

问题说明

上述代码在MX Linux、Windows 10系统中运行正常,但在Windows 11的en-NZ区域设置下,strptime无法解析九月缩写Sep,仅当使用Sept作为九月缩写时才能正常解析。该问题是Windows 11特定区域设置下的兼容性问题。

解决方案

使用lubridate包可规避此问题,它对Sep和Sept两种九月缩写均能正常解析,不受目标区域设置影响。示例代码如下:

library(lubridate)

txt <- c('Jan 1 2026 12:00AM', 'Feb 1 2026 12:00AM', 'Mar 1 2026 12:00AM',
         'Apr 1 2026 12:00AM', 'May 1 2026 12:00AM', 'Jun 1 2026 12:00AM',
         'Jul 1 2026 12:00AM', 'Aug 1 2026 12:00AM', 'Sep 1 2026 12:00AM',
         'Oct 1 2026 12:00AM', 'Nov 1 2026 12:00AM', 'Dec 1 2026 12:00AM')

pos <- mdy_hm(txt)

内容的提问来源于stack exchange,提问作者Sue Street

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 00:05:10