我在山地标准时间的数据库中有时间值。我想知道如何最好地准确地将这些值转换为用户的时区。
我有这样的功能(在MST中传递格式和时间):
Dim localZone As TimeZone = TimeZone.CurrentTimeZone
If localZone Is Nothing Or localZone.StandardName = "Mountain Standard Time" Then
Return DateTimeInMST.ToString(format) & " MST"
Else
Return (Return Value here in the user's timezone.)
答案 0 :(得分:1)
在文档中建议使用TimeZoneInfo
而不是TimeZone
。使用它,你可以这样做:
Dim mst = TimeZoneInfo.FindSystemTimeZoneById("Mountain Standard Time")
Dim local = TimeZoneInfo.Local
Dim localTime = TimeZoneInfo.ConvertTime(DateTimeInMST, mst, local)
答案 1 :(得分:0)
您可以使用ConvertTime方法将Mountain Standard Time转换为用户的本地时间。你的代码看起来像这样:
Dim localZone As TimeZoneInfo = TimeZoneInfo.Local
If localZone Is Nothing Or localZone.StandardName = "Mountain Standard Time" Then
Return DateTimeInMST.ToString(format) & " MST"
Else
Return System.TimeZoneInfo.ConvertTime(DateTimeInMST, TimeZoneInfo.FindSystemTimeZoneById("Mountain Standard Time"), TimeZoneInfo.Local)
在doc中找到更多信息。