TimeZoneInfo.ConvertTimeBySystemTimeZoneId メソッド

定義

ある時刻をタイム ゾーン ID に基づいて別のタイム ゾーンの時刻に変換します。Converts a time to the time in another time zone based on a time zone identifier.

オーバーロード

ConvertTimeBySystemTimeZoneId(DateTime, String)

ある時刻をタイム ゾーン ID に基づいて別のタイム ゾーンの時刻に変換します。Converts a time to the time in another time zone based on the time zone's identifier.

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

ある時刻をタイム ゾーン ID に基づいて別のタイム ゾーンの時刻に変換します。Converts a time to the time in another time zone based on the time zone's identifier.

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

あるタイム ゾーンの時刻を別のタイム ゾーンの時刻にタイム ゾーン ID に基づいて変換します。Converts a time from one time zone to another based on time zone identifiers.

ConvertTimeBySystemTimeZoneId(DateTime, String)

ある時刻をタイム ゾーン ID に基づいて別のタイム ゾーンの時刻に変換します。Converts a time to the time in another time zone based on the time zone's identifier.

public:
 static DateTime ConvertTimeBySystemTimeZoneId(DateTime dateTime, System::String ^ destinationTimeZoneId);
public static DateTime ConvertTimeBySystemTimeZoneId (DateTime dateTime, string destinationTimeZoneId);
static member ConvertTimeBySystemTimeZoneId : DateTime * string -> DateTime

パラメーター

dateTime
DateTime

変換する日付と時刻。The date and time to convert.

destinationTimeZoneId
String

変換先タイム ゾーンの ID。The identifier of the destination time zone.

戻り値

変換先タイム ゾーンでの日付と時刻。The date and time in the destination time zone.

例外

destinationTimeZoneIdnullです。destinationTimeZoneId is null.

タイム ゾーン ID が見つかりましたが、レジストリ データが破損しています。The time zone identifier was found, but the registry data is corrupted.

プロセスには、タイム ゾーン情報を格納するレジストリ キーからの読み取りに必要な権限がありません。The process does not have the permissions required to read from the registry key that contains the time zone information.

destinationTimeZoneId ID がローカル システムで見つかりませんでした。The destinationTimeZoneId identifier was not found on the local system.

注釈

変換を実行すると、 ConvertTimeBySystemTimeZoneIdメソッドはdestinationTimeZoneIdタイムゾーンで有効な調整規則を適用します。When performing the conversion, the ConvertTimeBySystemTimeZoneId method applies any adjustment rules in effect in the destinationTimeZoneId time zone.

このオーバーロードは、メソッドのConvertTime(DateTime, TimeZoneInfo)呼び出しとほぼ同じですが、オブジェクト参照ではなく、識別子を使用して変換先のタイムゾーンを指定できる点が異なります。This overload is largely identical to calling the ConvertTime(DateTime, TimeZoneInfo) method, except that it allows you to specify the destination time zone by its identifier rather than by an object reference. このメソッドは、対応するタイムゾーンオブジェクトを取得せずに時刻を変換する必要があり、変換された時刻が標準と夏時間のどちらであるかを知る必要がない場合に最も役立ちます。This method is most useful when you must convert a time without retrieving the time zone object that corresponds to it and you do not need to know whether the converted time is standard or daylight saving time.

メソッドConvertTimeBySystemTimeZoneId(DateTime, String)は、次の表に示すように、 dateTimeパラメーターのKindプロパティの値からソースタイムゾーンを決定します。The ConvertTimeBySystemTimeZoneId(DateTime, String) method determines the source time zone from the value of the dateTime parameter's Kind property, as the following table shows.

Kind プロパティ値Kind property value ソースタイムゾーンSource time zone メソッドの動作Method behavior
DateTimeKind.Local Local ローカル時刻をのdestinationTimeZone時刻に変換します。Converts the local time to the time in destinationTimeZone.
DateTimeKind.Utc Utc 世界協定時刻 (UTC) をのdestinationTimeZone時刻に変換します。Converts Coordinated Universal Time (UTC) to the time in destinationTimeZone.
DateTimeKind.Unspecified と想定さLocalれます。Assumed to be Local. ローカル時刻をのdestinationTimeZone時刻に変換します。Converts the local time to the time in destinationTimeZone.

Kind 戻りDateTime値のプロパティは、次の表に示すように設定されます。The Kind property of the returned DateTime value is set as shown in the following table.

条件Condition 返された Kind プロパティ値Returned Kind property value
destinationTimeZoneTimeZoneInfo.Utc.Id です。The destinationTimeZone is TimeZoneInfo.Utc.Id. DateTimeKind.Utc
その他destinationTimeZoneの値。Any other destinationTimeZone value. DateTimeKind.Unspecified

dateTimeパラメーターの値があいまいな現地時刻の場合、標準時として解釈されます。If the value of the dateTime parameter is an ambiguous local time, it is interpreted as a standard time. パラメーターが無効な現地時刻の場合、このメソッドはをArgumentExceptionスローします。 dateTimeIf the dateTime parameter is an invalid local time, this method throws an ArgumentException.

dateTimeの変換結果が、よりDateTime.MinValue DateTime.MaxValue前または後の日付と時刻の値になる場合、このメソッドDateTime.MinValueDateTime.MaxValue、それぞれまたはを返します。If the conversion of dateTime results in a date and time value that is earlier than DateTime.MinValue or later than DateTime.MaxValue, this method returns DateTime.MinValue or DateTime.MaxValue, respectively.

このメソッドは、Windows システムのレジストリ、および Linux および macOS のdestinationTimeZoneId ICU ライブラリから、パラメーターで指定された識別子を持つタイムゾーンに関する情報を取得します。This method retrieves information on the time zone whose identifier is specified by the destinationTimeZoneId parameter from the registry on Windows systems and from the ICU Library on Linux and macOS. CreateCustomTimeZoneメソッドを使用して作成されたタイムゾーンオブジェクトを取得することはできません。It cannot retrieve a time zone object that is created using the CreateCustomTimeZone method. パラメーター destinationTimeZoneIdは、タイムゾーンの識別子と正確に一致している必要がありますが、一致が正常に行われるようにするためではdestinationTimeZoneIdありません。つまり、とタイムゾーン識別子の比較では大文字と小文字が区別されません。The destinationTimeZoneId parameter must correspond exactly to the time zone's identifier in length, but not in case, for a successful match to occur; that is, the comparison of destinationTimeZoneId with time zone identifiers is case-insensitive.

こちらもご覧ください

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

ある時刻をタイム ゾーン ID に基づいて別のタイム ゾーンの時刻に変換します。Converts a time to the time in another time zone based on the time zone's identifier.

public:
 static DateTimeOffset ConvertTimeBySystemTimeZoneId(DateTimeOffset dateTimeOffset, System::String ^ destinationTimeZoneId);
public static DateTimeOffset ConvertTimeBySystemTimeZoneId (DateTimeOffset dateTimeOffset, string destinationTimeZoneId);
static member ConvertTimeBySystemTimeZoneId : DateTimeOffset * string -> DateTimeOffset

パラメーター

dateTimeOffset
DateTimeOffset

変換する日付と時刻。The date and time to convert.

destinationTimeZoneId
String

変換先タイム ゾーンの ID。The identifier of the destination time zone.

戻り値

変換先タイム ゾーンでの日付と時刻。The date and time in the destination time zone.

例外

destinationTimeZoneIdnull です。destinationTimeZoneId is null.

タイム ゾーン ID が見つかりましたが、レジストリ データが破損しています。The time zone identifier was found but the registry data is corrupted.

プロセスには、タイム ゾーン情報を格納するレジストリ キーからの読み取りに必要なアクセス許可がありません。The process does not have the permissions required to read from the registry key that contains the time zone information.

destinationTimeZoneId ID がローカル システムで見つかりませんでした。The destinationTimeZoneId identifier was not found on the local system.

注釈

変換を実行すると、 ConvertTimeBySystemTimeZoneIdメソッドはdestinationTimeZoneIdタイムゾーンで有効な調整規則を適用します。When performing the conversion, the ConvertTimeBySystemTimeZoneId method applies any adjustment rules in effect in the destinationTimeZoneId time zone.

このオーバーロードは、メソッドのConvertTime(DateTime, TimeZoneInfo)呼び出しと同じですが、オブジェクト参照ではなく、識別子を使用して変換先のタイムゾーンを指定できる点が異なります。This overload is identical to calling the ConvertTime(DateTime, TimeZoneInfo) method, except that it allows you to specify the destination time zone by its identifier rather than by an object reference. このメソッドは、対応するタイムゾーンオブジェクトを取得せずに時刻を変換する必要があり、変換された時刻が標準と夏時間のどちらであるかを知る必要がない場合に最も役立ちます。This method is most useful when you must convert a time without retrieving the time zone object that corresponds to it and you do not need to know whether the converted time is standard or daylight saving time.

パラメーターはdateTimeOffset日付と時刻を世界協定時刻 (UTC) からの時刻のオフセットと共に表しているため、あいまいな時刻と無効な時刻のどちらも表すことはできません。Because the dateTimeOffset parameter represents a date and time together with that time's offset from Coordinated Universal Time (UTC), it cannot represent either an ambiguous time or an invalid time.

このメソッドは、Windows システムのレジストリから、またはdestinationTimeZoneId Linux と macOS のICU ライブラリから、パラメーターによって指定された識別子を持つタイムゾーンを取得します。This method retrieves the time zone whose identifier is specified by the destinationTimeZoneId parameter from the registry on Windows systems and from the ICU Library on Linux and macOS. CreateCustomTimeZoneメソッドを使用して作成されたタイムゾーンオブジェクトを取得することはできません。It cannot retrieve a time zone object that is created using the CreateCustomTimeZone method. パラメーター destinationTimeZoneIdは、タイムゾーンの識別子と正確に一致している必要がありますが、一致が正常に行われるようにするためではdestinationTimeZoneIdありません。つまり、とタイムゾーン識別子の比較では大文字と小文字が区別されません。The destinationTimeZoneId parameter must correspond exactly to the time zone's identifier in length, but not in case, for a successful match to occur; that is, the comparison of destinationTimeZoneId with time zone identifiers is case-insensitive.

dateTimeOffset値を変換先タイムゾーンの時刻に変換する場合、メソッドは、変換先タイムゾーンで有効になっている調整規則を考慮に入れます。In converting the dateTimeOffset value to the time in the destination time zone, the method takes into account any adjustment rules in effect in the destination time zone.

dateTimeOffsetの変換結果が、よりDateTimeOffset.MinValue DateTimeOffset.MaxValue前または後の日付と時刻の値になる場合、このメソッドDateTimeOffset.MinValueDateTimeOffset.MaxValue、それぞれまたはを返します。If the conversion of dateTimeOffset results in a date and time value that is earlier than DateTimeOffset.MinValue or later than DateTimeOffset.MaxValue, this method returns DateTimeOffset.MinValue or DateTimeOffset.MaxValue, respectively.

こちらもご覧ください

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

あるタイム ゾーンの時刻を別のタイム ゾーンの時刻にタイム ゾーン ID に基づいて変換します。Converts a time from one time zone to another based on time zone identifiers.

public:
 static DateTime ConvertTimeBySystemTimeZoneId(DateTime dateTime, System::String ^ sourceTimeZoneId, System::String ^ destinationTimeZoneId);
public static DateTime ConvertTimeBySystemTimeZoneId (DateTime dateTime, string sourceTimeZoneId, string destinationTimeZoneId);
static member ConvertTimeBySystemTimeZoneId : DateTime * string * string -> DateTime

パラメーター

dateTime
DateTime

変換する日付と時刻。The date and time to convert.

sourceTimeZoneId
String

変換元タイム ゾーンの ID。The identifier of the source time zone.

destinationTimeZoneId
String

変換先タイム ゾーンの ID。The identifier of the destination time zone.

戻り値

変換元タイム ゾーンでの dateTime パラメーターに対応する、変換先タイム ゾーンでの日付と時刻。The date and time in the destination time zone that corresponds to the dateTime parameter in the source time zone.

例外

dateTime パラメーターの Kind プロパティは変換元タイム ゾーンと対応していません。The Kind property of the dateTime parameter does not correspond to the source time zone.

または-or- dateTime が変換元タイム ゾーンで無効な時刻です。dateTime is an invalid time in the source time zone.

sourceTimeZoneIdnull です。sourceTimeZoneId is null.

- または --or- destinationTimeZoneIdnullです。destinationTimeZoneId is null.

タイム ゾーン ID が見つかりましたが、レジストリ データが破損しています。The time zone identifiers were found, but the registry data is corrupted.

ユーザーには、タイム ゾーン データが格納されているレジストリ キーからの読み取りに必要な権限がありません。The user does not have the permissions required to read from the registry keys that hold time zone data.

sourceTimeZoneId ID がローカル システムで見つかりませんでした。The sourceTimeZoneId identifier was not found on the local system.

または-or- destinationTimeZoneId ID がローカル システムで見つかりませんでした。The destinationTimeZoneId identifier was not found on the local system.

次の例ではTimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) 、メソッドを使用して、世界の8都市でローカルシステム時刻に対応する時刻を表示します。The following example uses the TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) method to display the time that corresponds to the local system time in eight cities of the world.

DateTime currentTime = DateTime.Now;
Console.WriteLine("Current Times:");
Console.WriteLine();
Console.WriteLine("Los Angeles: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Pacific Standard Time"));
Console.WriteLine("Chicago: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Central Standard Time"));
Console.WriteLine("New York: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Eastern Standard Time"));
Console.WriteLine("London: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "GMT Standard Time"));
Console.WriteLine("Moscow: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Russian Standard Time"));
Console.WriteLine("New Delhi: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "India Standard Time"));
Console.WriteLine("Beijing: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "China Standard Time"));
Console.WriteLine("Tokyo: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Tokyo Standard Time"));
Dim currentTime As Date = Date.Now
Console.WriteLine("Current Times:")
Console.WriteLine()
Console.WriteLine("Los Angeles: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Pacific Standard Time"))
Console.WriteLine("Chicago: {0}", _ 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Central Standard Time"))
Console.WriteLine("New York: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Eastern Standard Time"))
Console.WriteLine("London: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "GMT Standard Time"))
Console.WriteLine("Moscow: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Russian Standard Time"))
Console.WriteLine("New Delhi: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "India Standard Time"))
Console.WriteLine("Beijing: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "China Standard Time"))
Console.WriteLine("Tokyo: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Tokyo Standard Time"))

注釈

変換を実行すると、 ConvertTimeBySystemTimeZoneIdメソッドはdestinationTimeZoneIdタイムゾーンで有効な調整規則を適用します。When performing the conversion, the ConvertTimeBySystemTimeZoneId method applies any adjustment rules in effect in the destinationTimeZoneId time zone.

TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo)メソッドに似ていますが、を使用TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String)して、 TimeZoneInfoオブジェクトではなく識別子を使用して、変換元と変換先のタイムゾーンを指定できます。Although it is similar to the TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) method, you can use TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) to specify the source and destination time zones using their identifiers instead of their TimeZoneInfo objects. このメソッドは、対応するタイムゾーンオブジェクトを取得せずに時刻を変換する必要があり、変換された時刻が標準と夏時間のどちらであるかを知る必要がない場合に最も役立ちます。This method is most useful when you must convert a time without retrieving the time zone object that corresponds to it and you do not need to know whether the converted time is standard or daylight saving time.

このメソッドは、Windows システムのレジストリおよび Linux sourceTimeZoneIdおよびdestinationTimeZoneId macOS のICU ライブラリから、識別子がおよびパラメーターであるタイムゾーンを取得します。This method retrieves the time zones whose identifiers are the sourceTimeZoneId and destinationTimeZoneId parameters from the registry on Windows systems and from the ICU Library on Linux and macOS. CreateCustomTimeZoneメソッドを使用して作成されたタイムゾーンオブジェクトを取得することはできません。It cannot retrieve time zone objects that are created using the CreateCustomTimeZone method.

次の表にKind示すようにdateTimesourceTimeZoneIdパラメーターのプロパティの値は、パラメーターに対応している必要があります。The value of the Kind property of the dateTime parameter must correspond to the sourceTimeZoneId parameter, as the following table shows.

DateTime. Kind 値DateTime.Kind value sourceTimeZone 値sourceTimeZone value メソッドの動作Method behavior
DateTimeKind.Utc TimeZoneInfo.Utc.Idが等しい。Equals TimeZoneInfo.Utc.Id. 変換dateTime先タイムゾーンの時刻に変換します。Converts dateTime to the destination time zone's time.
DateTimeKind.Utc Does not equal TimeZoneInfo.Utc.Idです。Does not equal TimeZoneInfo.Utc.Id. ArgumentExceptionスローします。Throws an ArgumentException.
DateTimeKind.Local TimeZoneInfo.Local.Idが等しい。Equals TimeZoneInfo.Local.Id. 変換dateTime先タイムゾーンの時刻に変換します。Converts dateTime to the destination time zone's time.
DateTimeKind.Local Does not equal TimeZoneInfo.Local.Idです。Does not equal TimeZoneInfo.Local.Id. ArgumentExceptionスローします。Throws an ArgumentException.
DateTimeKind.Unspecified いつ.Any. 変換dateTime先タイムゾーンの時刻に変換します。Converts dateTime to the destination time zone's time.

メソッドは、メソッドFindSystemTimeZoneByIdの呼び出しに依存しているため、メソッドはConvertTimeBySystemTimeZoneId 、およびにsourceTimeZoneId対応するタイムゾーンを検索するためdestinationTimeZoneIdに、大文字と小文字を区別せずに検索を実行します。Because it relies on calls to the FindSystemTimeZoneById method, the ConvertTimeBySystemTimeZoneId method performs a case-insensitive search to locate the time zones that correspond to sourceTimeZoneId and destinationTimeZoneId.

dateTimeパラメーターの値がソースタイムゾーンのあいまいな時刻の場合、標準時として解釈されます。If the value of the dateTime parameter is an ambiguous time in the source time zone, it is interpreted as a standard time. パラメーターがソースタイムゾーンの無効な時刻の場合、このメソッドはをArgumentExceptionスローします。 dateTimeIf the dateTime parameter is an invalid time in the source time zone, this method throws an ArgumentException.

変換先のタイムゾーンDateTimeが世界協定時刻DateTimeKind.Unspecified (UTC) である場合を除き、戻り値のDateTimeKind.Utcプロパティはに設定されます。この場合、はに設定されます。 KindThe Kind property of the returned DateTime value is set to DateTimeKind.Unspecified unless the destination time zone is Coordinated Universal Time (UTC), in which case it is set to DateTimeKind.Utc.

こちらもご覧ください

適用対象