1

日付の計算にWindowsのタイムゾーン情報を使用するレガシーアプリケーションがあります。たとえば、35 =東海岸、20 =中央、15=山です。これが現在の関数です。タイムゾーンのある日付を取得し、渡されたタイムゾーンに変換します。これはxpでは問題なく機能しますが、Windows 7ではクラッシュします。win32の部分と関係があるか、Windows7でタイムゾーンの処理が異なると思います。 。

タイムゾーンの形式を変更しないと、問題が発生する可能性があります。コードは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 TimeZoneクラス(システム)

VB.NETでTimeZoneクラスを使用する正しい方法については、上記のリンクを参照してください。

TimZones.Win32.Win32TimeZone.NETの有効なクラスではないため、機能しないようです。

于 2012-08-06T18:50:25.647 に答える
1

そのタイムゾーンライブラリは.NETBCLにはありません。タイムゾーンライブラリの作成者に問い合わせてください。

于 2012-08-06T18:44:11.193 に答える