1
.NETのTimeZoneInfoクラスは、インディアナが夏時間を観測することをなぜ示しますか?私はインディアナ州のどこにESTがあるのかといつも考えていました。 DSTを観察していないインディアナ州の部分を表現するために、「米国東部標準時」以外のものを使用する必要がありますか?.NET TimeZoneInfoオブジェクトはDSTを観察していることを示していますか?
Dim timeZones As New List(Of String)()
With timeZones
.Add("Eastern Standard Time") ' Eastern TZ, except parts of Indiana
.Add("US Eastern Standard Time") ' parts of Indiana?
End With
For Each tz In timeZones
Dim tzi As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(tz)
buf.AppendLine(tz)
buf.AppendFormat("SupportsDaylightSavingTime: {0}", tzi.SupportsDaylightSavingTime).AppendLine()
buf.AppendFormat("DisplayName: {0}", tzi.DisplayName).AppendLine()
buf.AppendFormat("StandardName: {0}", tzi.StandardName).AppendLine()
buf.AppendFormat("DaylightName: {0}", tzi.DaylightName).AppendLine()
buf.AppendFormat("IsDaylightSavingTime: {0}", tzi.IsDaylightSavingTime(DateTime.Now)).AppendLine()
buf.AppendFormat("Current Local Time: {0}", TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tzi)).AppendLine()
buf.AppendFormat("Current UTC Time: {0}", DateTime.UtcNow).AppendLine()
buf.AppendLine()
Next
結果:
Eastern Standard Time
SupportsDaylightSavingTime: True
DisplayName: (UTC-05:00) Eastern Time (US & Canada)
StandardName: Eastern Standard Time
DaylightName: Eastern Daylight Time
IsDaylightSavingTime: True
Current Local Time: 4/26/2012 10:37:08 AM
Current UTC Time: 4/26/2012 2:37:08 PM
US Eastern Standard Time
SupportsDaylightSavingTime: True
DisplayName: (UTC-05:00) Indiana (East)
StandardName: US Eastern Standard Time
DaylightName: US Eastern Daylight Time
IsDaylightSavingTime: True
Current Local Time: 4/26/2012 10:37:08 AM
Current UTC Time: 4/26/2012 2:37:08 PM
ありがとうJon!その答えは、基本的には「DSTを使わないのはインディアナ州の正しいタイムゾーンIDです」と2005年に変更されたDSTを実行していて、私はメモを受け取れなかったということです。 – mattmc3
@ mattmc3:ええ、多分。それらのうちのどれかが現在実際にセントラルタイムにいるかどうかによって異なります。それは複雑で、明らかに:) –
私は郵便番号でタイムゾーンを設定していますが、実際には正確ではありませんが、私の目的には十分です。したがって、デュアルタイムゾーンを持つ状態(12)私はインディアナ州でCSTを取得しましたが、夏時間に関心がありました。そして、ええ、それは複雑なやり方です。私はアメリカのタイムゾーンを扱っています。 – mattmc3