我正在使用天气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等字符旁边的任何信息。
如果有人能给我建议的话,我们会很感激的-谢谢
发布于 2019-05-12 07:40:18
PT1H
=1小时
我知道PT的意思是太平洋时区。
不不正确的假设。不是时区。
PT1H
表示一个持续时间,这是一个与时间线无关的时间跨度。这种格式是在ISO 8601标准中定义的。
P
标志着开始,我想是“时期”的缩写,是持续时间的同义词。T
将任意年份-月-日部分与任何小时-分钟-秒部分分开.
所以PT1H
的意思是“一小时”。两个半小时是PT2H30M
。
解析
将起始时刻和持续时间相结合的输入"2019-05-11T16:00:00+00:00/PT1H"
是ISO 8601的一部分标准。
这种组合字符串可以由Interval.parse
库中的https://www.threeten.org/threeten-extra/方法解析。
Interval interval = Interval.parse( "2019-05-11T16:00:00+00:00/PT1H" ) ;
Interval
表示一对矩,一对Instant
对象。在这里的例子中,通过将持续时间添加到起始时刻来计算第二个时刻。我们可以查询这对矩,表示为Instant
对象(按定义总是在UTC中)。
Instant start = interval.getStart() ;
Instant stop = interval.getEnd() ;
https://stackoverflow.com/questions/56096937
复制相似问题