如何让 parse_date_time() 识别闰年的 12 月 31 日?

问题描述 投票:0回答:1

我有一个由日期数字(闰年为 1-365、366)和年份组成的向量,我在 lubridate 中使用 parse_date_time() 将它们转换为 yyyy-mm-dd 格式的日期向量。我遇到了 12 月 31 日闰年的问题,因为该函数似乎不知道哪些年份是闰年,并且产生 NA(以及 2 月之后的其他日期抵消了一年)。我正在尝试找出如何正确解析这些日期。

这是我正在使用的代码:

>parse_date_time(366,2004, order = "j", tz="UTC")
[1] NA
Warning message:
 1 failed to parse. 

这是正确解析日期时发生的情况的示例(对于非闰年):

> parse_date_time(336,2005, order = "j", tz="UTC")
[1] "2023-12-02 UTC"

我知道lubridate有一个leap_year()函数,但这是针对已经采用日期格式的日期,所以在这种情况下它不起作用。

r tidyverse lubridate date-formatting leap-year
1个回答
0
投票

请注意,在第二个示例中,它实际上并没有为您提供 2005 年的日期时间 - 它忽略第二个参数,并默认为当前年份 2023,这不是闰年,因此它失败。

© www.soinside.com 2019 - 2024. All rights reserved.