在VB.NET中如何将MST时区值转换为另一个时区?

时间:2014-11-20 19:06:18

标签: vb.net time timezone

我在山地标准时间的数据库中有时间值。我想知道如何最好地准确地将这些值转换为用户的时区。

我有这样的功能(在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.)

2 个答案:

答案 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中找到更多信息。