我在使用 Azure Maps 为时区提供的数据尝试使用AT TIME ZONE
.
当我向 Azure Maps 提供夏威夷位置的纬度/经度数据时,返回显示“夏威夷-阿留申标准时间”:
"Names":{
"ISO6391LanguageCode":"en",
"Generic":"Hawaii-Aleutian Time",
"Standard":"Hawaii-Aleutian Standard Time",
"Daylight":"Hawaii-Aleutian Daylight Time"
},
在我系统的另一部分,我需要能够在 SQL Server 中确定该位置的本地时间,因此我正在使用AT TIME ZONE
和注入标准时区。这适用于我正在处理的美国时区,例如“东部标准时间”或“中部标准时间”。当它到达夏威夷位置时......它出错并说它不是有效的时区。
查看我已经能够在线找到的 SQL Server 时区列表,夏威夷的 SQL 时区似乎是“夏威夷标准时间”。
有没有其他人遇到过这种断开连接?
我想我需要纠正一些异常代码来用“夏威夷标准时间”替换这个 Azure 提供的时区。有更好的解决方案吗?
作为参考,这里有一个示例 URL(减号):https://atlas.microsoft.com/timezone/byCoordinates/json?subscription-key={key}&api-version=1.0&options=all&query=21.4500,-158.0054
这是返回的完整 JSON:
{
"Version": "2018g",
"ReferenceUtcTimestamp": "2018-12-08T17:10:31.8007137Z",
"TimeZones": [
{
"Id": "Pacific/Honolulu",
"Aliases": [
"Pacific/Johnston",
"US/Hawaii"
],
"Countries": [
{
"Name": "United States",
"Code": "US"
},
{
"Name": "US minor outlying islands",
"Code": "UM"
}
],
"Names": {
"ISO6391LanguageCode": "en",
"Generic": "Hawaii-Aleutian Time",
"Standard": "Hawaii-Aleutian Standard Time",
"Daylight": "Hawaii-Aleutian Daylight Time"
},
"ReferenceTime": {
"Tag": "HST",
"StandardOffset": "-10:00:00",
"DaylightSavings": "00:00:00",
"WallTime": "2018-12-08T07:10:31.8007137-10:00",
"PosixTzValidYear": 2018,
"PosixTz": "HST+10"
},
"RepresentativePoint": {
"Latitude": 21.306944444444444,
"Longitude": -157.85833333333332
},
"TimeTransitions": [
{
"Tag": "HST",
"StandardOffset": "-10:00:00",
"DaylightSavings": "00:00:00",
"UtcStart": "1947-06-08T12:30:00Z",
"UtcEnd": "9999-12-31T23:59:59.9999999Z"
}
]
}
]
}