r - strptime无法正确识别AM/PM字符串

标签 r strptime

使用功能strptime()时遇到意外情况。我所拥有的日期格式为“2013年1月22日晚上11点”。我为此使用的格式为“%m/%d/%Y%I:%M:%S%p”。

代码如下。

strptime("1/22/2013 11:00:00 p.m",format="%m/%d/%Y %I:%M:%S %p")
[1] NA

但是如果我使用
strptime("1/22/2013 11:00:00 pm",format="%m/%d/%Y %I:%M:%S %p")
[1] "2013-01-22 23:00:00"

我得到适当的结果。

因此,此功能也没有足够的strptime来检测p.m及其变化(例如p.m)。等代替PM或pm。这是R中的错误吗?

我在Windows 7 32位上使用R.14.2的R版本

最佳答案

这不是错误,但是strptime希望以标准化方式获取信息。 %p是:

AM/PM indicator in the locale. Used in conjunction with ‘%I’ and not with ‘%H’. An empty string in some locales.



在您的语言环境中,这被定义为AM/amPM/pm。 R是一种形式语言,您需要遵守它所施加的规则。如果您定义了一个级别为flavorcolortaste的因子,则不能指望能够使用colourflavour作为引用此因子的方法。即使您似乎很明显这些代表相同的概念,R还是一种没有人为灵活性的形式语言。

关于r - strptime无法正确识别AM/PM字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14455593/

相关文章:

Python - 时间数据不匹配格式

c - 从 time_t 中减去 char 指针

r - 使用 dplyr::mutate 计算 R 中的成对相关性

关于两个向量的差、交和并

c++ - strptime() 的问题 - %p 未被考虑在内

python - 计算文本文件中的时间与现在的时间差

Python:解析具有 7 位微秒到日期时间的时间戳字符串

r - R 中的 difftime 生成 NA 值

python - 将纬度/经度分配给邮政编码

r - 用 1s 之间的累计和填充 0-1 列