VB.net时区问题

时间:2012-08-06 18:18:15

标签: vb.net timezone

我有一个遗留应用程序,它使用Windows时区信息来计算日期。例如,35 =东海岸,20 =中央,15 =山。这是当前的功能。它需要一个带有时区的日期并将其转换为传入的时区。这在xp上运行正常,但它在Windows 7上崩溃。我猜它与win32部分有关,或者Windows 7以不同的方式处理时区

我不想更改时区的格式,因为这可能会导致一些问题。代码是vb.net,我没有写它。

Public Shared Function ConvertTime(ByVal time As Date, ByVal timeZone As Integer) As Date
        Dim UtcNow As Date = time.ToUniversalTime

        Dim selectedTimeZone As TimeZones.Win32.Win32TimeZone = TimeZones.Win32.TimeZones.GetTimeZone(timeZone)

        Return selectedTimeZone.ToLocalTime(UtcNow)
    End Function

以前有人遇到过这个问题吗?

2 个答案:

答案 0 :(得分:2)

Dim selectedTimeZone As TimeZones.Win32.Win32TimeZone =
TimeZones.Win32.TimeZones.GetTimeZone(timeZone)

在VB.NET中,您应该使用以下类来替换Win32TimeZone

MSDN TimeZone Class (System)

请参阅上面提供的链接,了解在VB.NET中使用TimeZone类的正确方法。

由于TimZones.Win32.Win32TimeZone不是有效的.NET类

,它似乎不会工作

答案 1 :(得分:1)

Timezones库不是.NET BCL中的。请联系时区图书馆的作者寻求帮助。