TimeZone.ToLocalTime(DateTime) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定した日付と時刻の値に対応する現地時間を返します。
public:
virtual DateTime ToLocalTime(DateTime time);
public virtual DateTime ToLocalTime (DateTime time);
abstract member ToLocalTime : DateTime -> DateTime
override this.ToLocalTime : DateTime -> DateTime
Public Overridable Function ToLocalTime (time As DateTime) As DateTime
パラメーター
- time
- DateTime
世界協定時刻 (UTC: Coordinated Universal Time)。
戻り値
time
に対応する現地時間の値を持つ DateTime オブジェクト。
注釈
次の表は、 パラメーターとこのメソッドによって返される値のDateTime関係time
を示しています。
time パラメーター |
動作 | 戻り値 |
---|---|---|
協定世界時 (UTC) 時刻 (DateTimeKind.Utc)。 | 時刻を UTC から現地時刻に変換します。 |
time に対応する現地時間の値を持つ DateTime オブジェクト。 |
現地時刻 (DateTimeKind.Local)。 | 変換は必要ありません。 | パラメーターでtime 表されるのと同じDateTime値。 |
指定されていない時刻 (DateTimeKind.Unspecified)。 | 時刻が UTC であることを前提とし、UTC から現地時刻に変換します。 |
time に対応する現地時間の値を持つ DateTime オブジェクト。 |
ローカル タイム ゾーンで夏時間が観察される場合は、 ToLocalTime 変換の実行時に現在の調整規則が に time
適用されます。
注意
メソッドは ToLocalTime 、ローカル タイム ゾーンの現在の夏時間調整規則のみを認識します。 その結果、最新の調整規則が有効な期間中にのみ、特定の UTC 時刻に対応する現地時刻を正確に返すことができます。 が以前の調整規則の対象となった履歴の日付と時刻の値である場合、不正確な結果が返される可能性 time
があります。
メソッドは ToLocalTime 、 パラメーターが に設定された TimeZoneInfo.ConvertTimeFromUtc メソッド destinationTimeZone
に TimeZoneInfo.Local対応します。 可能な限り、 メソッドを使用します TimeZoneInfo.ConvertTimeFromUtc 。
注意 (継承者)
必須ではありませんが、ほとんどの場合、.NET Framework バージョン 2.0 で実行されている派生クラスは、このメソッドの既定の実装をオーバーライドする必要があります。 .NET Framework バージョン 1.0 および 1.1 では、 メソッドが メソッドをGetUtcOffset(DateTime)呼び出し、ToLocalTime
現地時刻を返すときに夏時間用に調整されました。 ただし、.NET Framework 2.0 以降では、既定の実装の動作は パラメーターの time
プロパティによって異なりますKind。 その値が の場合、このメソッドは Local変更せずにを返します time
。 値が または UnspecifiedのUtc場合、このメソッドは UTC を想定time
し、 メソッドを呼び出さずにローカル システム時刻にGetUtcOffset(DateTime)変換します。
次のコードは、 メソッドの既定の実装の単純なオーバーライドを ToLocalTime
提供します。 このコードでは、 変数は internalTimeZone
クラスのプライベート インスタンスを TimeZone
表します。
public override DateTime ToLocalTime(DateTime time)
{
if (time.Kind == DateTimeKind.Local)
{
return time;
}
else if (time.Kind == DateTimeKind.Utc)
{
DateTime returnTime = new DateTime(time.Ticks, DateTimeKind.Local);
returnTime += this.GetUtcOffset(returnTime);
if (internalTimeZone.IsDaylightSavingTime(returnTime))
returnTime -= new TimeSpan(1, 0, 0);
return returnTime;
}
else
{
throw new ArgumentException("The source time zone cannot be determined.");
}
}
Public Overrides Function ToLocalTime(time As Date) As Date
If time.Kind = DateTimeKind.Local Then
Return time
ElseIf time.Kind = DateTimeKind.Utc Then
Dim returnTime As New Date(time.Ticks, DateTimeKind.Local)
returnTime += me.GetUtcOffset(returnTime)
if internalTimeZone.IsDaylightSavingTime(returnTime) Then
returnTime -= New TimeSpan(1, 0, 0)
End If
Return returnTime
Else
Throw New ArgumentException("The source time zone cannot be determined.")
End If
End Function
適用対象
こちらもご覧ください
.NET