从军用时间转换为标准时间,表示 AM/PM,使用 Lubridate 包

0 r lubridate

我正在尝试将作为数据框一部分的列从军事时间转换为标准时间。我还想指出 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)

Jav*_*Jav 5

您可以在基础 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 - 上午下午