【问题标题】:R: convert date from character to datetime [duplicate]R:将日期从字符转换为日期时间[重复]
【发布时间】:2017-05-01 03:45:30
【问题描述】:

我有df$date 作为下面的字符类型:

     date
1    "2016-04-10T12:21:25.4278624" 
2    "2016-04-12T10:01:42.9573987" 
3    "2016-04-12T10:02:15.2168753" 
4    "2016-04-12T10:02:45.3005686"

我想将其转换为日期时间对象并尝试as.Date(df$date),输出为

"2016-04-10" 
"2016-04-12" 
"2016-04-12" 
"2016-04-12"

我也试过as.POSIXlt(df$date),输出是

"2016-04-10 BST" 
"2016-04-12 BST" 
"2016-04-12 BST" 
"2016-04-12 BST"

我正在寻找的是

     date
1    2016-04-10 12:21:25.4278624 
2    2016-04-12 10:01:42.9573987 
3    2016-04-12 10:02:15.2168753 
4    2016-04-12 10:02:45.3005686

我还尝试了help的以下内容

as.POSIXct(strptime("2011-03-27 01:30:00", "%Y-%m-%d %H:%M:%S"))

输出为NA

如何获得所需的输出?

【问题讨论】:

    标签: r datetime time-series


    【解决方案1】:

    对我来说是这样的:

    test <- "2016-04-10T12:21:25.4278624"
    z <- as.POSIXct(test,format="%Y-%m-%dT%H:%M:%OS")
    
    #output:
    z
    "2016-04-10 12:21:25 CEST"
    

    代码在这里:converting datetime string to POSIXct date/time format in R

    【讨论】:

      【解决方案2】:

      另一种解决方案是使用lubridate 包。

       library(lubridate)
       test <- "2016-04-10T12:21:25.4278624"
      

      您可以使用ymd_hms 函数而不必担心这种情况下的格式。

      ymd_hms(test)
      
      #output
      [1] "2016-04-10 12:21:25 UTC"
      

      您可以使用tz 参数更改时区。

      ymd_hms(test, tz = "EST")
      [1] "2016-04-10 12:21:25 EST"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-05
        • 1970-01-01
        • 2021-12-26
        • 1970-01-01
        • 1970-01-01
        • 2012-01-02
        • 1970-01-01
        相关资源
        最近更新 更多