【问题标题】:How to convert Redis date in R [closed]如何在 R 中转换 Redis 日期 [关闭]
【发布时间】:2014-11-11 21:43:49
【问题描述】:

我正在尝试转换这种日期:“Tue Aug 12 2014 19:47:50 GMT+0000 (UTC)”

parseRedisDate <- function(date) {
    x <- gsub(" GMT\\+0000 \\(UTC\\)", "", date)
    as.Date(x, format="%a %b %d %Y %T")
}
date <- "Tue Aug 12 2014 19:47:50 GMT+0000 (UTC)"
parseRedisDate(date)

不工作...

【问题讨论】:

  • 什么不起作用?似乎在这里工作。
  • 我们是否应该猜测您想要的结果?
  • “不工作”不是对问题的有效描述。你得到了什么,你期望得到什么?
  • 您的代码运行良好。如果不是,请尝试(如@nicolas 回答)Sys.setlocale(category="LC_TIME","C")。现在我们可以关闭它了

标签: r parsing date redis


【解决方案1】:

您不想使用date 作为对象名称,因为这是基础 R 中的一个函数。但除此之外,您的函数似乎可以工作。它的核心:

x <- as.Date(gsub(" GMT\\+0000 \\(UTC\\)", "",
                  'Tue Aug 12 2014 19:47:50 GMT+0000 (UTC)'),
             format="%a %b %d %Y %T")
x

返回:

[1] "2014-08-12"

class(x)

返回:

[1] "Date"

【讨论】:

    【解决方案2】:

    如果您需要完整的日期时间,您可以轻松地将该字符串强制转换为 POSIXct 类的对象:

        x<-"Tue Aug 12 2014 19:47:50 GMT+0000 (UTC)"
        as.POSIXct(x,format="%a %b %d %Y %H:%M:%S")
    

    如果您的语言环境未设置为理解英文月份和日期名称,这可能会失败。您可以通过以下方式设置语言环境:

        Sys.setlocale(category="LC_TIME","C")
    

    上面的命令将起作用。如果您只需要日期(没有时间),您可以将POSIXct 强制转换为Date

        as.Date(as.POSIXct(x,format="%a %b %d %Y %H:%M:%S"))
    

    【讨论】:

      猜你喜欢
      • 2018-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      相关资源
      最近更新 更多