R:如何定义日期和时间格式

时间:2014-08-23 07:05:25

标签: r datetime

我有以下时间戳。

  

OUTLIST   “19980202_0810”“19980202_0815”“19980202_0820”

我想拥有 “1998-02-02T08:10:00Z”“1998-02-02T08:15:00Z”“1998-02-02T08:20:00Z”

我只能做“1998-02-02 08:10:00太平洋标准时间”。

  

time_obj = strptime(outlist,format =“%Y%m%d_%H%M”)

1 个答案:

答案 0 :(得分:1)

strptime是导入功能; strftime是格式(输出)函数,但我认为大多数人只会使用format

outlist <- c("19980202_0810", "19980202_0815", "19980202_0820")
time_obj=strptime(outlist, format = "%Y%m%d_%H%M") 
format( time_obj , format="%Y-%m-%dT%H:%M:%SZ")
#[1] "1998-02-02T08:10:00Z" "1998-02-02T08:15:00Z" "1998-02-02T08:20:00Z"

目前这些是POSIXlt项目:

> class(time_obj)
[1] "POSIXlt" "POSIXt" 

转换为POSIXct会更安全:

> time_obj=as.POSIXct(outlist, format = "%Y%m%d_%H%M")
> time_obj
[1] "1998-02-02 08:10:00 PST" "1998-02-02 08:15:00 PST" "1998-02-02 08:20:00 PST"
> class(time_obj)
[1] "POSIXct" "POSIXt" 

在data.frames中没有很好地处理POSIXlt对象。

修改:print中记录了POSIXct对象的?DateTimeClasses方法,format.POSIXct的帮助页面位于``trtftime`,我已经引用过:

strftime(time_obj, tz = "UTC")
[1] "1998-02-02 16:10:00" "1998-02-02 16:15:00" "1998-02-02 16:20:00"