当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R lubridate stamp 基于人性化模板设置日期和时间格式


邮票就像 format() ,但基于 human-friendly 模板,例如“2002 年 9 月上午 10 点录制”或“会议,2000 年 5 月 1 日星期日晚上 10:20”。

用法

stamp(
  x,
  orders = lubridate_formats,
  locale = Sys.getlocale("LC_TIME"),
  quiet = FALSE,
  exact = FALSE
)

stamp_date(x, locale = Sys.getlocale("LC_TIME"), quiet = FALSE)

stamp_time(x, locale = Sys.getlocale("LC_TIME"), quiet = FALSE)

参数

x

模板的字符向量。

orders

顺序是可用于消除歧义的格式化字符序列。例如"ymd hms"、"aym" 等。有关可用格式的列表,请参阅guess_formats()

locale

x 编码的区域设置。在 Linux-like 系统上,在终端中使用 locale -a 列出可用的区域设置。

quiet

是否输出信息性消息。

exact

合乎逻辑的。如果 TRUE ,则 orders 参数将被解释为精确的 base::strptime() 格式,并且不执行格式猜测。

应用于日期向量的函数

细节

stamp() 主要是一个标记函数日期时间模板,尽管它可以正确处理所有日期和时间格式,只要它们是明确的。 stamp_date()stamp_time() 是日期和时间 (MHS) 的专用标记。当输入模板明确并且匹配时间和日期格式时,这些函数可能很有用。

Lubridate 努力猜测格式,但通常给定的格式可以用多种方式解释。处理此类情况的一种方法是提供明确的格式,例如 22/05/81,而不是 d/m/y 格式的 10/05/81。另一种方法是使用更专门的 stamp_datestamp_time 。核心函数 stamp() 优先考虑较长的日期时间格式。

如果x是值的向量润滑将选择"fits"的格式x最好的。请注意,首选较长的格式。如果您有“22:23:00 PM”,则 "HMSp" 格式将优先考虑较短的 "HMS" 顺序,该顺序也适合提供的字符串。

最后,您可以直接将所需的格式顺序作为 orders 参数给出。

例子

D <- ymd("2010-04-05") - days(1:5)
stamp("March 1, 1999")(D)
#> Multiple formats matched: "%Om %d, %Y"(1), "March %Om, %Y"(1), "%B %d, %Y"(1), "March %m, %Y"(1)
#> Using: "%B %d, %Y"
#> [1] "April 04, 2010" "April 03, 2010" "April 02, 2010" "April 01, 2010"
#> [5] "March 31, 2010"
sf <- stamp("Created on Sunday, Jan 1, 1999 3:34 pm")
#> Multiple formats matched: "Created on %A, %b %d, %Y %I:%M %p"(1), "Created on Sunday, %b %d, %Y %I:%M %p"(1), "Created on %A, %Om %d, %Y %I:%M %p"(0), "Created on Sunday, %Om %d, %Y %I:%M %p"(0)
#> Using: "Created on %A, %b %d, %Y %I:%M %p"
sf(D)
#> [1] "Created on Sunday, Apr 04, 2010 12:00 AM"   
#> [2] "Created on Saturday, Apr 03, 2010 12:00 AM" 
#> [3] "Created on Friday, Apr 02, 2010 12:00 AM"   
#> [4] "Created on Thursday, Apr 01, 2010 12:00 AM" 
#> [5] "Created on Wednesday, Mar 31, 2010 12:00 AM"
stamp("Jan 01")(D)
#> Multiple formats matched: "%Om %y"(1), "%Om %d"(1), "Jan %Om"(1), "%b %d"(1), "Jan %H"(1), "Jan %m"(1), "Jan %y"(1), "%b %y"(0)
#> Using: "%Om %y"
#> [1] "04 10" "04 10" "04 10" "04 10" "03 10"
stamp("Sunday, May 1, 2000", locale = "C")(D)
#> Multiple formats matched: "%A, %b %d, %Y"(1), "Sunday, %Om %d, %Y"(1), "Sunday, May %Om, %Y"(1), "Sunday, %b %d, %Y"(1), "Sunday, May %m, %Y"(1), "%A, %Om %d, %Y"(0), "%A, May %Om, %Y"(0), "%A, May %m, %Y"(0)
#> Using: "%A, %b %d, %Y"
#> [1] "Sunday, Apr 04, 2010"    "Saturday, Apr 03, 2010" 
#> [3] "Friday, Apr 02, 2010"    "Thursday, Apr 01, 2010" 
#> [5] "Wednesday, Mar 31, 2010"
stamp("Sun Aug 5")(D) #=> "Sun Aug 04" "Sat Aug 04" "Fri Aug 04" "Thu Aug 04" "Wed Aug 03"
#> Multiple formats matched: "%a %b %d"(1), "%a Aug %H"(1), "Sun %Om %d"(1), "Sun Aug %Om"(1), "Sun %b %d"(1), "Sun Aug %H"(1), "Sun Aug %m"(1), "%a %Om %d"(0), "%a Aug %Om"(0), "%a Aug %m"(0)
#> Using: "%a %b %d"
#> [1] "Sun Apr 04" "Sat Apr 03" "Fri Apr 02" "Thu Apr 01" "Wed Mar 31"
stamp("12/31/99")(D)              #=> "06/09/11"
#> Multiple formats matched: "%Om/%d/%y"(1), "%m/%d/%y"(1)
#> Using: "%Om/%d/%y"
#> [1] "04/04/10" "04/03/10" "04/02/10" "04/01/10" "03/31/10"
stamp("Sunday, May 1, 2000 22:10", locale = "C")(D)
#> Multiple formats matched: "%A, May %Om, %Y %d:%H"(1), "%A, %b %d, %Y %H:%M"(1), "%A, May %m, %Y %d:%H"(1), "Sunday, %Om %d, %Y %H:%M"(1), "Sunday, May %Om, %Y %d:%H"(1), "Sunday, %b %d, %Y %H:%M"(1), "Sunday, May %m, %Y %d:%H"(1), "%A, %Om %d, %Y %H:%M"(0)
#> Using: "%A, %b %d, %Y %H:%M"
#> [1] "Sunday, Apr 04, 2010 00:00"    "Saturday, Apr 03, 2010 00:00" 
#> [3] "Friday, Apr 02, 2010 00:00"    "Thursday, Apr 01, 2010 00:00" 
#> [5] "Wednesday, Mar 31, 2010 00:00"
stamp("2013-01-01T06:00:00Z")(D)
#> Multiple formats matched: "%Y-%Om-%dT%H:%M:%S%Ou"(1), "%Y-%Om-%dT%H:%M:%SZ"(1), "%Y-%d-%OmT%H:%M:%SZ"(1), "%Y-%m-%dT%H:%M:%S%Ou"(1), "%Y-%m-%dT%H:%M:%SZ"(1), "%Y-%d-%mT%H:%M:%SZ"(1)
#> Using: "%Y-%Om-%dT%H:%M:%S%Ou"
#> [1] "2010-04-04T00:00:00Z" "2010-04-03T00:00:00Z" "2010-04-02T00:00:00Z"
#> [4] "2010-04-01T00:00:00Z" "2010-03-31T00:00:00Z"
stamp("2013-01-01T00:00:00-06")(D)
#> Multiple formats matched: "%Y-%Om-%dT%H:%M:%S%Oo"(1), "%Y-%m-%dT%H:%M:%S%Oo"(1)
#> Using: "%Y-%Om-%dT%H:%M:%S%Oo"
#> [1] "2010-04-04T00:00:00+00" "2010-04-03T00:00:00+00"
#> [3] "2010-04-02T00:00:00+00" "2010-04-01T00:00:00+00"
#> [5] "2010-03-31T00:00:00+00"
stamp("2013-01-01T00:00:00-08:00")(force_tz(D, "America/Chicago"))
#> Multiple formats matched: "%Y-%Om-%dT%H:%M:%S%OO"(1), "%Y-%m-%dT%H:%M:%S%OO"(1)
#> Using: "%Y-%Om-%dT%H:%M:%S%OO"
#> [1] "2010-04-04T00:00:00-05:00" "2010-04-03T00:00:00-05:00"
#> [3] "2010-04-02T00:00:00-05:00" "2010-04-01T00:00:00-05:00"
#> [5] "2010-03-31T00:00:00-05:00"
源代码:R/stamp.r

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Format dates and times based on human-friendly templates。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。