【问题标题】:How to change the date and time value to time only?如何仅将日期和时间值更改为时间?
【发布时间】:2014-06-09 14:21:36
【问题描述】:

我有这样的日期和时间值的数据,

12-Jul-2004  23:00  12-Jul-2004  23:05  13-Jul-2004  5:30   13-Jul-2004  5:30
13-Jul-2004  23:00  13-Jul-2004  23:30  14-Jul-2004  5:30   14-Jul-2004  5:30
14-Jul-2004  22:30  14-Jul-2004  22:40  15-Jul-2004  5:30   15-Jul-2004  5:30
16-Jul-2004  0:00   16-Jul-2004  0:10   16-Jul-2004  5:20   16-Jul-2004  5:30
17-Jul-2004  1:00   17-Jul-2004  1:15   17-Jul-2004  9:00   17-Jul-2004  9:15

我想将日期和时间值更改为仅时间。我确实寻找解决方案,但都失败了。我希望有人请在这里给你指导。非常感谢。

附加信息,日期格式不同,如 1-Jul-2004、11-Jul-2004。

【问题讨论】:

  • 一个正则表达式加上this 可能。
  • 更多信息会有所帮助。这些数据只是字符串还是日期类?也许format(Sys.time(), format = '%H:%M')这个例子会给你一些指导,要点是format(formatIN, formatOUT)
  • 请注意,基本 R 没有“仅时间”的特殊类,只有“日期+时间”。如果您想将其保留为字符串/字符,这不是问题,但如果您需要将其用作更多数值,则需要查看提供仅限时间类的包。

标签: r date datetime


【解决方案1】:

您可以将日期显式转换为 POSIX 时间戳:

x <- c("12-Jul-2004  23:00", "4-Jul-2004  11:00")
x_formatted <- as.POSIXct(x, format =  "%d-%b-%Y  %H:%M")

然后你可以以只包含小时和分钟的格式输出 POSIX 时间戳:

format(x_formatted, format = "%H:%M")

结果:

"23:00" "11:00"

【讨论】:

  • 日期的字符数不同,例如 2004 年 7 月 4 日和 2004 年 7 月 11 日。这就是让它变得困难的部分。
  • 那么我提交的代码应该可以正常工作。我更新了x 的示例以使其显而易见,但除此之外,相同的代码仍然有效。
猜你喜欢
  • 2019-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多