r - 以 AM/PM 格式解析日期时间
问题描述
我正在尝试在 R 中以 AM/PM 格式解析日期时间。我发现 '%p' 可以处理这个问题。但是,当我尝试这个时:
mydate <- as.POSIXct("01.01.1970 01:00:00 PM", format="%d.%m.%Y %H:%M:%S %p", tz = "UTZ")
mydate
[1] "1970-01-01 01:00:00 UTZ"
> as.numeric(mydate)
[1] 3600
这显然是凌晨 1 点。我本来期望输出:
[1] "1970-01-01 13:00:00 UTZ"
[1] 46800
我错过了什么?
解决方案
它考虑为上午 1 点而不是下午 1 点,因此您得到 3600 作为输出。
as.POSIXct("01.01.1970 01:00:00 PM", format="%d.%m.%Y %H:%M:%S %p", tz = "UTC")
#[1] "1970-01-01 01:00:00 UTC"
文件?strptime
说
%p 区域设置中的 AM/PM 指示符。与 %I 结合使用,而不与 %H 结合使用。某些语言环境中的空字符串(如果用于此类语言环境中的输入,则行为未定义)。
您需要使用%I
而不是%H
mydate <- as.POSIXct("01.01.1970 01:00:00 PM", format="%d.%m.%Y %I:%M:%S %p",
tz = "UTC")
as.numeric(mydate)
#[1] 46800
一个替代方案lubridate
library(lubridate)
seconds(mdy_hms("01.01.1970 01:00:00 PM"))
#[1] "46800S"
推荐阅读
- javascript - 在组对象fabricjs之外显示全文
- apache-flink - Apache Flink,逻辑或物理运算符中的Keyby数据分布?
- javascript - 如何从数组和映射函数动态初始化打字稿中的对象?
- javascript - 为什么 Promise.all 返回 [ [Function: test1], [Function: test2] ]
- amazon-web-services - AWS Crawler 无法读取所有列
- c++ - 有没有办法生成一个哈希函数,它返回签名 long long 类型的哈希码?
- html - 如何在 CSS 样式之上获取此文本
- django - 如何在同一服务器/域上运行两个单独的 django 实例?
- electron - 电子生成器失败:没有生成“对象”文件
- php - woocommerce_thankyou 挂钩函数的致命错误问题