Попытка понять «PT1H» в строке даты и времени - PullRequest
0 голосов
/ 12 мая 2019

Я использую Weather API для обработки информации о погоде в качестве службы для моего проекта. Я пытаюсь понять некоторые смещения часового пояса, о которых я не могу найти информацию.

URL-адрес, который я использую:

https://api.weather.gov/gridpoints/VEF/154,48

Вот некоторые примеры возвращаемых значений:

"temperature": {
    "sourceUnit": "F",
    "uom": "unit:degC",
    "values": [
        {
            "validTime": "2019-05-11T16:00:00+00:00/PT1H",
            "value": 18.333333333333371
        },
        {
            "validTime": "2019-05-12T04:00:00+00:00/PT2H",
            "value": 16.1111111111112
        },
        {
            "validTime": "2019-05-12T21:00:00+00:00/PT4H",
            "value": 26.666666666666742
        },
        ...
    ]
}

Я понимаю, что PT означает Тихоокеанский часовой пояс. Но я не могу найти информацию о следующих символах, как 1H , 2H и т. Д.

Если кто-нибудь может посоветовать, что будет оценено - спасибо

1 Ответ

4 голосов
/ 12 мая 2019

PT1H = один час

Я понимаю, что PT означает Тихоокеанский часовой пояс.

Нет, неверное предположение. Не часовой пояс.

PT1H представляет продолжительность , промежуток времени, не привязанный к временной шкале. Этот формат определен в стандарте ISO 8601 .

P обозначает начало, сокращение от «Period», синоним длительности. T отделяет любую часть лет-месяцев-дней от любой части часов-минут-секунд.

То есть PT1H означает «один час». Два с половиной часа будут PT2H30M.

Синтаксический

Ваш ввод "2019-05-11T16:00:00+00:00/PT1H", объединяющий начальный момент с продолжительностью, является частью стандарта ISO 8601 .

Такая комбо-строка может быть проанализирована методом Interval.parse, найденным в библиотеке ThreeTen-Extra .

Interval interval = Interval.parse( "2019-05-11T16:00:00+00:00/PT1H" ) ;
...