R语言将字符串解析为日期时间对象

示例

用于将字符串解析为POSIXct和POSIXlt的函数采用相似的参数并返回相似的结果,但是该日期时间的存储方式有所不同。请参阅“备注”。

as.POSIXct("11:38",                        # time string
           format = "%H:%M")               # formatting string
## [1] "2016-07-21 11:38:00 CDT"           
strptime("11:38",                          # identical, but makes a POSIXlt object
         format = "%H:%M")
## [1] "2016-07-21 11:38:00 CDT"

as.POSIXct("11 AM",                   
           format = "%I %p")        
## [1] "2016-07-21 11:00:00 CDT"

请注意,日期和时区是假定的。

as.POSIXct("11:38:22",                 # time string without timezone
           format = "%H:%M:%S",   
           tz = "America/New_York")    # set time zone
## [1] "2016-07-21 11:38:22 EDT"

as.POSIXct("2016-07-21 00:00:00",
           format = "%F %T")           # shortcut tokens for "%Y-%m-%d" and "%H:%M:%S"

请参阅?strptime此处以获取有关格式字符串的详细信息。


笔记

缺少元素

  • 如果未提供日期元素,则使用当前日期的日期元素。

  • 如果未提供时间元素,则使用从午夜开始的时间,即0s。

  • 如果字符串或tz参数中均未提供时区,则使用本地时区。

时区

  • 接受的值tz取决于位置。

    • CST给予"CST6CDT"或"America/Chicago"

  • 对于受支持的位置和时区,请使用:

    • 在R中: OlsonNames()

    • 或者,尝试使用R: system("cat $R_HOME/share/zoneinfo/zone.tab")

  • 这些位置由互联网号码分配机构(IANA)给出

    • tz数据库时区列表(维基百科)

    • IANA TZ数据(2016e)