如何按城市代码查找时区?

时间:2019-04-18 10:39:11

标签: vb.net timezone

我对时区知识不足,因此我从未转换过时区。 我有一个项目,要求我通过他们的城市代码将客户来源时区转换为服务器时区。

我无法通过谷歌搜索找到其他地方。 我发现使用的是

  

TimeZoneInfo.FindSystemTimeZoneById(“其他时间”)。

但是我需要的是

  

TimeZoneInfo.FindTimeZoneByCityCode(“ DAM”)

大马士革时区。

有什么办法或建议吗?任何建议将不胜感激。

对不起,我的英语不好

1 个答案:

答案 0 :(得分:0)

您可以使用Bing API从地址的提供的部分获取时区

Private Function GetTimeZone(ByVal Loc As String) As String
    Dim key As String = "YourBingKeyHere"
    Dim webClient As New Net.WebClient
    Dim result As String = webClient.DownloadString("http://dev.virtualearth.net/REST/v1/TimeZone/" & Loc & "?o=xml&key=" & key)
    Dim xmlDoc As New Xml.XmlDocument()
    xmlDoc.LoadXml(result)
    Dim xmlNodeRdr As New Xml.XmlNodeReader(xmlDoc)
    Dim DS As New DataSet
    DS.ReadXml(xmlNodeRdr, XmlReadMode.InferSchema)
    If DS.Tables.Contains("TimeZone") Then
        If DS.Tables("TimeZone").Rows.Count > 0 Then
            Dim Drow() As DataRow = DS.Tables("TimeZone").Select("Abbreviation IS NOT NULL")
            Dim TimeZoneDataRow As DataRow = Drow(0)
            Dim TimeZone As String = TimeZoneDataRow("Abbreviation").ToString
            Return TimeZone
        Else
            Return Nothing
        End If
    Else
        Return Nothing
    End If
End Function

用法:

Private Sub ButtonGetTimeZone_Click(sender As Object, e As EventArgs) Handles ButtonGetTimeZone.Click
    MsgBox(GetTimeZone("29910"))
End Sub