2

Web サイトから次のコードを見つけました (申し訳ありませんが、参照用のサイトを今思い出せません)。しかし、それは私のコンピューターの現在のタイム ゾーン オフセットを与えてくれました。たとえば、次のコードは次のようになります。

Dim plusminus As String = If((tz.Hours > 0), "+", "-")
Dim NewTimeZone As String = String.Format("{0}{1:00}:{2:00}", plusminus, Math.Abs(tz.Hours), tz.Minutes)

出力として「+09:30」をくれました。これは完璧でした。しかし、夏時間が有効になったため、同じコードで「+10:30」と表示されるようになりましたが、これは実際には正しくありません。

誰かがオフセットを正しく取得し (夏時間の内外の両方)、同じ形式 (+09:30) で返すためのより良い方法をアドバイスしてもらえますか?

前もって感謝します

4

1 に答える 1

5

私が正しく理解していれば、夏時間に関係なく、UTC と現在の時刻の違いを見つけたいですか?

私が正しければ、次はあなたが望むことをします:

Dim tzi As TimeZoneInfo = TimeZoneInfo.Local
Dim offset As TimeSpan = tzi.BaseUtcOffset
Dim plus As String = If(offset.TotalMinutes >= 0, "+", "")
Dim newTimeZone As String = String.Format("{0}{1:00}:{2:00}", plus, offset.Hours, offset.Minutes)

私のマシンでの出力+00:00(私の現地時間は UTC+1 ですが、現在は DST です)

于 2013-10-10T08:31:01.680 に答える