如何转换长日期格式
How to convert long date frmat
我有日期格式为这种格式的 Dataframe
"Sun Dec 26 2021 08:10:14 GMT+0100"
见下方数据框
Time Account Name Type Product ID Successful
Sun Dec 26 2021 08:10:14 GMT+0100 switch topup MFIN-1-OR undefined
Sun Dec 26 2021 08:10:14 GMT+0100 switch topup MFIN-1-OR undefined
Sun Dec 26 2021 08:10:14 GMT+0100 switch topup MFIN-1-OR undefined
Sun Dec 26 2021 08:10:14 GMT+0100 switch topup MFIN-1-OR undefined
Sun Dec 26 2021 08:10:12 GMT+0100 switch topup MFIN-1-OR TRUE
Sun Dec 26 2021 08:10:12 GMT+0100 switch topup MFIN-1-OR TRUE
Sun Dec 26 2021 08:10:11 GMT+0100 switch topup MFIN-1-OR TRUE
Sun Dec 26 2021 08:10:11 GMT+0100 switch topup MFIN-1-OR TRUE
Sun Dec 26 2021 08:10:11 GMT+0100 switch topup MFIN-1-OR TRUE
Sun Dec 26 2021 08:10:10 GMT+0100 switch topup MFIN-1-OR TRUE
Sun Dec 26 2021 08:10:10 GMT+0100 switch topup MFIN-1-OR TRUE
如何将其转换为如下格式
"%y/%m/%d %H:%M:%S"
使用 strptime
.
strftime(strptime('Sun Dec 26 2021 08:10:14 GMT+0100',
'%a %b %d %Y %H:%M:%S GMT%z'), '%y/%m/%d %H:%M:%S'
)
# [1] "21/12/26 08:10:14"
在您的数据框中:
transform(dat, Time=strftime(strptime(Time, '%a %b %d %Y %H:%M:%S GMT%z'),
'%y/%m/%d %H:%M:%S'))
# Time x y
# 1 21/12/26 08:10:14 1 4
# 2 21/12/26 08:10:14 2 5
# 3 21/12/26 08:10:14 3 6
数据:
dat <- structure(list(Time = c("Sun Dec 26 2021 08:10:14 GMT+0100",
"Sun Dec 26 2021 08:10:14 GMT+0100", "Sun Dec 26 2021 08:10:14 GMT+0100"
), x = 1:3, y = 4:6), class = "data.frame", row.names = c(NA,
-3L))
我们可以在一些调整后使用 lubridate
包的 mdy_hms
功能:即删除 first 之前和 last space 之后的所有内容:
感谢@jay.sf 提供数据:
library(dplyr)
library(lubridate)
dat %>%
mutate(Time = gsub(" [^ ]*$|^[^ ]* ","",Time,perl=T),
Time = mdy_hms(Time)) %>%
as_tibble()
Time x y
<dttm> <int> <int>
1 2021-12-26 08:10:14 1 4
2 2021-12-26 08:10:14 2 5
3 2021-12-26 08:10:14 3 6
这可能会被 parsedate
中的 parse_date
自动解析
library(parsedate)
df1$Time <- format(parse_date(df1$Time), "%y/%m/%d %H:%M:%S")
-输出
> df1
Time x y
1 21/12/26 08:10:14 1 4
2 21/12/26 08:10:14 2 5
3 21/12/26 08:10:14 3 6
数据
df1 <- structure(list(Time = c("Sun Dec 26 2021 08:10:14 GMT+0100",
"Sun Dec 26 2021 08:10:14 GMT+0100", "Sun Dec 26 2021 08:10:14 GMT+0100"
), x = 1:3, y = 4:6), class = "data.frame", row.names = c(NA,
-3L))
我有日期格式为这种格式的 Dataframe
"Sun Dec 26 2021 08:10:14 GMT+0100"
见下方数据框
Time Account Name Type Product ID Successful
Sun Dec 26 2021 08:10:14 GMT+0100 switch topup MFIN-1-OR undefined
Sun Dec 26 2021 08:10:14 GMT+0100 switch topup MFIN-1-OR undefined
Sun Dec 26 2021 08:10:14 GMT+0100 switch topup MFIN-1-OR undefined
Sun Dec 26 2021 08:10:14 GMT+0100 switch topup MFIN-1-OR undefined
Sun Dec 26 2021 08:10:12 GMT+0100 switch topup MFIN-1-OR TRUE
Sun Dec 26 2021 08:10:12 GMT+0100 switch topup MFIN-1-OR TRUE
Sun Dec 26 2021 08:10:11 GMT+0100 switch topup MFIN-1-OR TRUE
Sun Dec 26 2021 08:10:11 GMT+0100 switch topup MFIN-1-OR TRUE
Sun Dec 26 2021 08:10:11 GMT+0100 switch topup MFIN-1-OR TRUE
Sun Dec 26 2021 08:10:10 GMT+0100 switch topup MFIN-1-OR TRUE
Sun Dec 26 2021 08:10:10 GMT+0100 switch topup MFIN-1-OR TRUE
如何将其转换为如下格式
"%y/%m/%d %H:%M:%S"
使用 strptime
.
strftime(strptime('Sun Dec 26 2021 08:10:14 GMT+0100',
'%a %b %d %Y %H:%M:%S GMT%z'), '%y/%m/%d %H:%M:%S'
)
# [1] "21/12/26 08:10:14"
在您的数据框中:
transform(dat, Time=strftime(strptime(Time, '%a %b %d %Y %H:%M:%S GMT%z'),
'%y/%m/%d %H:%M:%S'))
# Time x y
# 1 21/12/26 08:10:14 1 4
# 2 21/12/26 08:10:14 2 5
# 3 21/12/26 08:10:14 3 6
数据:
dat <- structure(list(Time = c("Sun Dec 26 2021 08:10:14 GMT+0100",
"Sun Dec 26 2021 08:10:14 GMT+0100", "Sun Dec 26 2021 08:10:14 GMT+0100"
), x = 1:3, y = 4:6), class = "data.frame", row.names = c(NA,
-3L))
我们可以在一些调整后使用 lubridate
包的 mdy_hms
功能:即删除 first 之前和 last space 之后的所有内容:
感谢@jay.sf 提供数据:
library(dplyr)
library(lubridate)
dat %>%
mutate(Time = gsub(" [^ ]*$|^[^ ]* ","",Time,perl=T),
Time = mdy_hms(Time)) %>%
as_tibble()
Time x y
<dttm> <int> <int>
1 2021-12-26 08:10:14 1 4
2 2021-12-26 08:10:14 2 5
3 2021-12-26 08:10:14 3 6
这可能会被 parsedate
parse_date
自动解析
library(parsedate)
df1$Time <- format(parse_date(df1$Time), "%y/%m/%d %H:%M:%S")
-输出
> df1
Time x y
1 21/12/26 08:10:14 1 4
2 21/12/26 08:10:14 2 5
3 21/12/26 08:10:14 3 6
数据
df1 <- structure(list(Time = c("Sun Dec 26 2021 08:10:14 GMT+0100",
"Sun Dec 26 2021 08:10:14 GMT+0100", "Sun Dec 26 2021 08:10:14 GMT+0100"
), x = 1:3, y = 4:6), class = "data.frame", row.names = c(NA,
-3L))