我正在使用天气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() ;