r - 如何在R中使用strptime()保持午夜(00:00h)?

标签 r date datetime format posixct

我有一个数据框df,它的日期因子变量的格式如下:

2015-12-15 10:00:00
2015-12-19 12:00:00
2015-12-20 20:00:00


它是每小时数据。在午夜00:00:00时出现问题,因为它没有出现在小时中。它只是说:

21/12/2015


因此,正如您所看到的,它只表示日期,而没有小时。
因此,我使用strptime使用以下命令将其转换为日期格式:

df$date <- strptime(df$date,"%d/%m/%Y %H:%M")


所有时间和日期都可以正常工作,午夜00:00:00的任何一天除外,它返回:

NA


我一直在寻找StackOverflow和其他论坛上的以前的帖子,对此我会非常感激,但是我还没有设法解决这个特定问题的解决方案。

最佳答案

从R的strptime文档(添加了重点):

格式
字符串。如果任何元素的时间分量不是午夜,则格式方法的默认值为“%Y-%m-%d%H:%M:%S”,否则为“%Y-%m-%d”。如果设置了options(“ digits.secs”),则最多可打印指定数目的数字,持续几秒钟。

因此信息仍然存在,您只需要format即可将其与时间分量一起打印出来。

> midnight <- strptime("2015-12-19 00:00:00","%Y-%m-%d %H:%M")
> midnight
[1] "2015-12-19 EST"
> format(midnight,"%Y/%m/%d %H:%M")
[1] "2015/12/19 00:00"

关于r - 如何在R中使用strptime()保持午夜(00:00h)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37089536/

相关文章:

php - 如何将此日期字符串存储在 mysql 数据库中以允许按日期排序?

regex - Perl/regex 日期格式转换

MySQL TIMESTAMP 停止处理夏令时转换

r - 汇总和传播数据

php - MySQL 查询日期接近 "today' s"date 的行

r - 将 UNIX 纪元转换为 Date 对象

php - 使用 unix 时间、php、mysql 的时区问题

PHP DateTime::Diff 弄错了吗?

r - dplyr “Select”-错误:找到重复的列名

r - 灵活重复填充调色板