如何将字符串转换为日期时间对象

How to convert a string into a date-time object

数据是字符,我希望它是日期时间。我有作弊 sheet 但没有任何格式可以满足奇怪的日期格式。有什么建议吗?

x <- 'Fri Dec 11 12:10:51 PST 2020'

您可以使用 anytime

> library(anytime)
> anytime("Fri Dec 11 12:10:51 PST 2020")
[1] "2020-12-11 12:10:51 CST"
> 
> class(anytime("Fri Dec 11 12:10:51 PST 2020"))
[1] "POSIXct" "POSIXt" 
> 

它具有三个主要优点:

  • 它可以猜出格式(如此处)
  • 它转换各种输入格式(包括字符、因子、...)
  • 它非常快(因为解析器是来自 Boost 的 C++)

大多数方法忽略时区属性是非常标准的。所以太平洋标准时间成为我的当地时间,中央。

在基础 R 中,你可以这样做:

x <- 'Fri Dec 11 12:10:51 PST 2020'
as.POSIXct(x, format = '%a %b %d %T PST %Y')

有关详细的格式规范,请参阅 ?strptime