试图在日期时间字符串中理解“ PT1H”



我正在使用天气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 是指太平洋时区。但是我似乎找不到有关临近字符的任何信息

如果有人建议您对此表示赞赏 - 谢谢

PT1H =一小时

我理解PT意味着太平洋时区。

否,错误的假设。不是时区。

PT1H表示持续时间,时间跨度未与时间表绑在一起。此格式在ISO 8601标准中定义。

P标志着开始的开始,我想是"周期"的简短,这是持续时间的同义词。T将任何年限的部分分开与任何小时的秒部分分开。

因此,PT1H的意思是"一小时"。两个半小时是PT2H30M

解析

您的输入"2019-05-11T16:00:00+00:00/PT1H"将起始时刻与持续时间结合在一起是ISO 8601标准的一部分。

可以通过在 threeten-extra library中找到的Interval.parse方法来解析这样的组合字符串。

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

Interval代表一对矩,一对Instant对象。在您的情况下,通过将持续时间添加到开始时刻,可以计算第二刻。我们可以询问以Instant对象表示的一对矩(按定义始终在UTC中(。

Instant start = interval.getStart() ;
Instant stop = interval.getEnd() ;

相关内容

  • 没有找到相关文章

最新更新