Необходимо преобразовать дату и время в R в этот формат «201712071520» для вызова Weather API.

Как я могу преобразовать даты в R в строку без тире или косой черты или букв и времени без двоеточий. Например, я могу получить 2017-12-07 в R, но мне нужно 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


person Mike    schedule 27.12.2017    source источник
comment
Дирк, пожалуйста, покажи мне, где находится точная копия, потому что я не могу ее найти, спасибо, Майкл.   -  person Mike    schedule 27.12.2017
comment
Дирк, ваш пример - как преобразовать символ в R. Я хочу сделать наоборот и преобразовать из R в строку символов 201712071520   -  person Mike    schedule 27.12.2017
comment
Переместили комментарий в ответ.   -  person G. Grothendieck    schedule 28.12.2017


Ответы (2)


Перенесено из комментариев.

Если x относится к классу "Date" R, используйте указанный оператор format:

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

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

Подробнее о процентных кодах см. ?strptime.

person G. Grothendieck    schedule 28.12.2017

Это немного более универсальное решение. Это будет выглядеть так:

    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)
person gopal krishna varshney    schedule 29.12.2017