对于Weather API调用,需要将R中的日期和时间转换为此格式“201712071520”

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

如何将R中的日期转换为不带破折号或斜线的字符串,或者不使用冒号的字母和时间。例如,我可以在R中获得2017-12-07但我需要201712071520才能在Weather API调用中使用。我怎样才能做到这一点?有关参考,请参阅下面的示例调用startDateTime和endDateTime。我想将我拥有的日期转换为20171207格式,并在没有冒号的情况下将其添加到固定时间(1520)。谢谢你的帮助!

我被告知之前已经问过这个问题,但其他例子正在将相反的字符串转换为R日期和时间。

以下是我调用的API示例:

https://api.weather.com/v3/wx/hod/conditions/historical/point?pointType=nearest&geocode=39.86,-104.67&startDateTime=201712071520&endDateTime=201712071520&units=e&format=json&apiKey=yourApiKey

r date time lubridate weather-api
2个回答
1
投票

从评论中移开。

如果x是R的"Date"类,那么使用指示的format语句:

x <- as.Date("2017-12-07") # test input

format(x, "%Y%m%d1520") 
## [1] "201712071520"

有关百分比代码的更多信息,请参阅?strptime


0
投票

这是一个更通用的解决方案。它看起来像这样:

    library(lubridate)
    input_date = "2017-1-7" #intentionally taking different date to make it more generic
    fixed_text = "1520"
    input_date = ymd(input_date)
    output_date = paste(year(input_date), sprintf(fmt = '%02d', month(input_date)), sprintf(fmt = '%02d', day(input_date)), fixed_text, sep = "")
    print(output_date)
© www.soinside.com 2019 - 2024. All rights reserved.