我正在尝试将作为数据框一部分的列从军事时间转换为标准时间。我还想指出 AM/PM。我试图在 R 的 lubridate 包的能力范围内做到这一点。
从另一个名为“df”的数据框我创建了一个名为“out”的新数据框,代码如下:
out <- df %>% mutate(NewDate = parse_date_time(CreatedDate, orders = "mdy IMS p")) %>%
select(CreatedDate, NewDate)
Run Code Online (Sandbox Code Playgroud)
我使用 mutate 函数操作的“df”列(称为“CreatedDate”)具有如下所示的单元格:
01/01/2019 02:12:37 PM
01/01/2019 10:37:57 PM
01/02/2014 05:10:35 AM
Run Code Online (Sandbox Code Playgroud)
我操纵了该列以生成名为“NewDate”的新列,如下所示:
2018-04-12 11:11:26
2018-11-13 13:06:56
2018-04-16 05:30:13
Run Code Online (Sandbox Code Playgroud)
我正在尝试将“NewDate”列标准化,但要定期进行并包含 AM/PM 指定,就像在应用 parse_date_time 函数之前所做的那样。
我预计,通过在我的parse_date_time函数中包含“mdy IMS p” ,我会在我的 NewDate 列中生成如下所示的内容:
2018-04-12 11:11:26 AM
2018-11-13 01:06:56 PM
2018-04-16 05:30:13 AM
Run Code Online (Sandbox Code Playgroud)
您可以在基础 R 中使用 format
date_time <- as.POSIXct("2018-04-12 21:11:26")
format(date_time, "%Y-%m-%d %I:%M:%S %p")
# [1] "2018-04-12 09:11:26 PM"
Run Code Online (Sandbox Code Playgroud)
%Y - 4 位数字年份
%m- 十进制月份
%d - 十进制日期
%H - 十进制小时(24 小时)
%I - 十进制小时(12 小时)
%M - 十进制分钟
%S - 十进制秒
%p - 上午下午