1

我有一个遗留应用程序,它使用 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

以前有人有这个问题吗?

4

2 回答 2

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

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

MSDN 时区类(系统)

请参阅我上面提供的链接以查看在 VB.NET 中使用 TimeZone 类的正确方法。

TimZones.Win32.Win32TimeZone由于不是.NET的有效类,它似乎不起作用

于 2012-08-06T18:50:25.647 回答
1

该时区库不在 .NET BCL 中。请联系您的时区库的作者寻求帮助。

于 2012-08-06T18:44:11.193 回答