TimeZoneInfo.ConvertTime メソッド

定義

時刻を特定のタイム ゾーンの時刻に変換します。Converts a time to the time in a particular time zone.

オーバーロード

ConvertTime(DateTime, TimeZoneInfo)

時刻を特定のタイム ゾーンの時刻に変換します。Converts a time to the time in a particular time zone.

ConvertTime(DateTimeOffset, TimeZoneInfo)

時刻を特定のタイム ゾーンの時刻に変換します。Converts a time to the time in a particular time zone.

ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo)

あるタイム ゾーンの時刻を別のタイム ゾーンの時刻に変換します。Converts a time from one time zone to another.

ConvertTime(DateTime, TimeZoneInfo)

時刻を特定のタイム ゾーンの時刻に変換します。Converts a time to the time in a particular time zone.

public:
 static DateTime ConvertTime(DateTime dateTime, TimeZoneInfo ^ destinationTimeZone);
public static DateTime ConvertTime (DateTime dateTime, TimeZoneInfo destinationTimeZone);
static member ConvertTime : DateTime * TimeZoneInfo -> DateTime
Public Shared Function ConvertTime (dateTime As DateTime, destinationTimeZone As TimeZoneInfo) As DateTime

パラメーター

dateTime
DateTime

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

destinationTimeZone
TimeZoneInfo

dateTime の変換先タイム ゾーン。The time zone to convert dateTime to.

戻り値

DateTime

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

例外

dateTime パラメーターの値が無効な時刻を表しています。The value of the dateTime parameter represents an invalid time.

destinationTimeZone パラメーターの値が null です。The value of the destinationTimeZone parameter is null.

次の例では、日付と時刻の値の配列を米国およびカナダの東部標準時のタイムゾーンの時刻に変換します。The following example converts an array of date and time values to times in the Eastern Time zone of the U.S. and Canada. これは、ソースタイムゾーンがソース DateTime 値の DateTime.Kind プロパティに依存していることを示しています。It shows that the source time zone depends on the DateTime.Kind property of the source DateTime value. また、タイムゾーンの調整は、ソースと宛先の両方のタイムゾーンで午前2:00 に行われるため、ConvertTime メソッドではタイムゾーンの調整が行われることも示しています。It also illustrates that the ConvertTime method takes time zone adjustments into account, because a time zone adjustment occurs in both the source and destination time zones at 2:00 A.M. 2010年11月7日。on November 7, 2010.

using System;

public class Example
{
   public static void Main()
   {
      // Define times to be converted.
      DateTime[] times = { new DateTime(2010, 1, 1, 0, 1, 0), 
                           new DateTime(2010, 1, 1, 0, 1, 0, DateTimeKind.Utc), 
                           new DateTime(2010, 1, 1, 0, 1, 0, DateTimeKind.Local),                            
                           new DateTime(2010, 11, 6, 23, 30, 0),
                           new DateTime(2010, 11, 7, 2, 30, 0) };
                              
      // Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
      TimeZoneInfo est; 
      try {
         est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
      }
      catch (TimeZoneNotFoundException) {
         Console.WriteLine("Unable to retrieve the Eastern Standard time zone.");
         return;
      }
      catch (InvalidTimeZoneException) {
         Console.WriteLine("Unable to retrieve the Eastern Standard time zone.");
         return;
      }   

      // Display the current time zone name.
      Console.WriteLine("Local time zone: {0}\n", TimeZoneInfo.Local.DisplayName);
      
      // Convert each time in the array.
      foreach (DateTime timeToConvert in times)
      {
         DateTime targetTime = TimeZoneInfo.ConvertTime(timeToConvert, est);
         Console.WriteLine("Converted {0} {1} to {2}.", timeToConvert, 
                           timeToConvert.Kind, targetTime);
      }                        
   }
}
// The example displays the following output:
//    Local time zone: (GMT-08:00) Pacific Time (US & Canada)
//    
//    Converted 1/1/2010 12:01:00 AM Unspecified to 1/1/2010 3:01:00 AM.
//    Converted 1/1/2010 12:01:00 AM Utc to 12/31/2009 7:01:00 PM.
//    Converted 1/1/2010 12:01:00 AM Local to 1/1/2010 3:01:00 AM.
//    Converted 11/6/2010 11:30:00 PM Unspecified to 11/7/2010 1:30:00 AM.
//    Converted 11/7/2010 2:30:00 AM Unspecified to 11/7/2010 5:30:00 AM.
Module Example
   Public Sub Main()
      ' Define times to be converted.
      Dim times() As Date = { #1/1/2010 12:01AM#, _
                              DateTime.SpecifyKind(#1/1/2010 12:01AM#, DateTimeKind.Utc), _
                              DateTime.SpecifyKind(#1/1/2010 12:01AM#, DateTimeKind.Local), _
                              #11/6/2010 11:30PM#, #11/7/2010 2:30AM# }
                              
      ' Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
      Dim est As TimeZoneInfo 
      Try
         est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")
      Catch e As TimeZoneNotFoundException
         Console.WriteLine("Unable to retrieve the Eastern Standard time zone.")
         Exit Sub
      Catch e As InvalidTimeZoneException
         Console.WriteLine("Unable to retrieve the Eastern Standard time zone.")
         Exit Sub
      End Try   

      ' Display the current time zone name.
      Console.WriteLine("Local time zone: {0}", TimeZoneInfo.Local.DisplayName)
      Console.WriteLine()
      
      ' Convert each time in the array.
      For Each timeToConvert As Date In times
         Dim targetTime As Date = TimeZoneInfo.ConvertTime(timeToConvert, est)
         Console.WriteLine("Converted {0} {1} to {2}.", timeToConvert, _
                           timeToConvert.Kind, targetTime)
      Next                        
   End Sub
End Module
' The example displays the following output:
'    Local time zone: (GMT-08:00) Pacific Time (US & Canada)
'    
'    Converted 1/1/2010 12:01:00 AM Unspecified to 1/1/2010 3:01:00 AM.
'    Converted 1/1/2010 12:01:00 AM Utc to 12/31/2009 7:01:00 PM.
'    Converted 1/1/2010 12:01:00 AM Local to 1/1/2010 3:01:00 AM.
'    Converted 11/6/2010 11:30:00 PM Unspecified to 11/7/2010 1:30:00 AM.
'    Converted 11/7/2010 2:30:00 AM Unspecified to 11/7/2010 5:30:00 AM.

注釈

変換を実行すると、ConvertTime(DateTimeOffset, TimeZoneInfo) メソッドによって、destinationTimeZone タイムゾーンで有効になっている調整規則が適用されます。When performing the conversion, the ConvertTime(DateTimeOffset, TimeZoneInfo) method applies any adjustment rules in effect in the destinationTimeZone time zone.

次の表に示すように、ConvertTime(DateTime, TimeZoneInfo) メソッドのこのオーバーロードは、dateTime パラメーターの Kind プロパティの値からソースタイムゾーンを決定します。This overload of the ConvertTime(DateTime, TimeZoneInfo) 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.

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

条件Condition 返された Kind プロパティ値Returned Kind property value
destinationTimeZoneTimeZoneInfo.Utc です。The destinationTimeZone is TimeZoneInfo.Utc. DateTimeKind.Utc
destinationTimeZoneTimeZoneInfo.Local です。The destinationTimeZone is TimeZoneInfo.Local. DateTimeKind.Local
その他のすべての日付と時刻の値と変換先のタイムゾーン。All other date and time values and destination time zones. DateTimeKind.Unspecified

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

dateTime の変換によって DateTime.MaxValueよりも DateTime.MinValue 前の日付と時刻の値が返される場合、このメソッドは DateTime.MinValue または DateTime.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.

ConvertTimeFromUtc および ConvertTimeToUtc メソッドを呼び出すことによって、UTC との間で変換を行うこともできます。You can also convert to or from UTC by calling the ConvertTimeFromUtc and ConvertTimeToUtc methods.

こちらもご覧ください

ConvertTime(DateTimeOffset, TimeZoneInfo)

時刻を特定のタイム ゾーンの時刻に変換します。Converts a time to the time in a particular time zone.

public:
 static DateTimeOffset ConvertTime(DateTimeOffset dateTimeOffset, TimeZoneInfo ^ destinationTimeZone);
public static DateTimeOffset ConvertTime (DateTimeOffset dateTimeOffset, TimeZoneInfo destinationTimeZone);
static member ConvertTime : DateTimeOffset * TimeZoneInfo -> DateTimeOffset
Public Shared Function ConvertTime (dateTimeOffset As DateTimeOffset, destinationTimeZone As TimeZoneInfo) As DateTimeOffset

パラメーター

dateTimeOffset
DateTimeOffset

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

destinationTimeZone
TimeZoneInfo

dateTime の変換先タイム ゾーン。The time zone to convert dateTime to.

戻り値

DateTimeOffset

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

例外

destinationTimeZone パラメーターの値が null です。The value of the destinationTimeZone parameter is null.

次の例では、DateTimeOffset 値の配列を米国およびカナダの東部標準時のタイムゾーンの時刻に変換します。The following example converts an array of DateTimeOffset values to times in the Eastern Time zone of the U.S. and Canada. タイムゾーンの調整は、移行元と移行先の両方のタイムゾーンで午前2:00 に行われるため、ConvertTime メソッドではタイムゾーン調整が考慮されることを示しています。It illustrates that the ConvertTime method takes time zone adjustments into account, because a time zone adjustment occurs in both the source and destination time zones at 2:00 A.M. 2010年11月7日。on November 7, 2010.

using System;

public class Example
{
   public static void Main()
   {
      // Define times to be converted.
      DateTime time1 = new DateTime(2010, 1, 1, 12, 1, 0);
      DateTime time2 = new DateTime(2010, 11, 6, 23, 30, 0);
      DateTimeOffset[] times = { new DateTimeOffset(time1, TimeZoneInfo.Local.GetUtcOffset(time1)),
                                 new DateTimeOffset(time1, TimeSpan.Zero),
                                 new DateTimeOffset(time2, TimeZoneInfo.Local.GetUtcOffset(time2)),
                                 new DateTimeOffset(time2.AddHours(3), TimeZoneInfo.Local.GetUtcOffset(time2.AddHours(3))) };
                              
      // Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
      TimeZoneInfo est; 
      try {
         est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
      }
      catch (TimeZoneNotFoundException) {
         Console.WriteLine("Unable to retrieve the Eastern Standard time zone.");
         return;
      }
      catch (InvalidTimeZoneException) {
         Console.WriteLine("Unable to retrieve the Eastern Standard time zone.");
         return;
      }   

      // Display the current time zone name.
      Console.WriteLine("Local time zone: {0}\n", TimeZoneInfo.Local.DisplayName);
      
      // Convert each time in the array.
      foreach (DateTimeOffset timeToConvert in times)
      {
         DateTimeOffset targetTime = TimeZoneInfo.ConvertTime(timeToConvert, est);
         Console.WriteLine("Converted {0} to {1}.", timeToConvert, targetTime);
      }                        
   }
}
// The example displays the following output:
//    Local time zone: (GMT-08:00) Pacific Time (US & Canada)
//    
//    Converted 1/1/2010 12:01:00 AM -08:00 to 1/1/2010 3:01:00 AM -05:00.
//    Converted 1/1/2010 12:01:00 AM +00:00 to 12/31/2009 7:01:00 PM -05:00.
//    Converted 11/6/2010 11:30:00 PM -07:00 to 11/7/2010 1:30:00 AM -05:00.
//    Converted 11/7/2010 2:30:00 AM -08:00 to 11/7/2010 5:30:00 AM -05:00.
Module Example
   Public Sub Main()
      ' Define times to be converted.
      Dim time1 As Date = #1/1/2010 12:01AM#
      Dim time2 As Date = #11/6/2010 11:30PM#
      Dim times() As DateTimeOffset = { New DateTimeOffset(time1, TimeZoneInfo.Local.GetUtcOffset(time1)), _
                                        New DateTimeOffset(time1, Timespan.Zero), _
                                        New DateTimeOffset(time2, TimeZoneInfo.Local.GetUtcOffset(time2)), _
                                        New DateTimeOffset(time2.AddHours(3), TimeZoneInfo.Local.GetUtcOffset(time2.AddHours(3))) }
                              
      ' Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
      Dim est As TimeZoneInfo 
      Try
         est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")
      Catch e As TimeZoneNotFoundException
         Console.WriteLine("Unable to retrieve the Eastern Standard time zone.")
         Exit Sub
      Catch e As InvalidTimeZoneException
         Console.WriteLine("Unable to retrieve the Eastern Standard time zone.")
         Exit Sub
      End Try   

      ' Display the current time zone name.
      Console.WriteLine("Local time zone: {0}", TimeZoneInfo.Local.DisplayName)
      Console.WriteLine()
      
      ' Convert each time in the array.
      For Each timeToConvert As DateTimeOffset In times
         Dim targetTime As DateTimeOffset = TimeZoneInfo.ConvertTime(timeToConvert, est)
         Console.WriteLine("Converted {0} to {1}.", timeToConvert, targetTime)
      Next                        
   End Sub
End Module
' The example displays the following output:
'    Local time zone: (GMT-08:00) Pacific Time (US & Canada)
'    
'    Converted 1/1/2010 12:01:00 AM -08:00 to 1/1/2010 3:01:00 AM -05:00.
'    Converted 1/1/2010 12:01:00 AM +00:00 to 12/31/2009 7:01:00 PM -05:00.
'    Converted 11/6/2010 11:30:00 PM -07:00 to 11/7/2010 1:30:00 AM -05:00.
'    Converted 11/7/2010 2:30:00 AM -08:00 to 11/7/2010 5:30:00 AM -05:00.

注釈

変換を実行すると、ConvertTime(DateTimeOffset, TimeZoneInfo) メソッドによって、destinationTimeZone タイムゾーンで有効になっている調整規則が適用されます。When performing the conversion, the ConvertTime(DateTimeOffset, TimeZoneInfo) method applies any adjustment rules in effect in the destinationTimeZone time zone.

このオーバーロードは、最初のパラメーターとして DateTimeOffset 値を受け取ることによって、ConvertTime メソッドの他のオーバーロードとは異なります。This overload differs from the other overloads of the ConvertTime method by accepting a DateTimeOffset value as its first parameter. これにより、特定のタイムゾーンの日付と時刻ではなく世界協定時刻 (UTC) からのオフセットとして日付と時刻が識別されます。This identifies the date and time as an offset from Coordinated Universal Time (UTC) rather than as the date and time in a particular time zone. その結果、dateTimeOffset パラメーターはあいまいな時刻または無効な時刻を表すことができません。As a result, the dateTimeOffset parameter cannot represent either an ambiguous time or an invalid time.

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

dateTimeOffset の変換によって DateTimeOffset.MaxValueよりも DateTimeOffset.MinValue 前の日付と時刻の値が返される場合、このメソッドは DateTimeOffset.MinValue または DateTimeOffset.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.

こちらもご覧ください

ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo)

あるタイム ゾーンの時刻を別のタイム ゾーンの時刻に変換します。Converts a time from one time zone to another.

public:
 static DateTime ConvertTime(DateTime dateTime, TimeZoneInfo ^ sourceTimeZone, TimeZoneInfo ^ destinationTimeZone);
public static DateTime ConvertTime (DateTime dateTime, TimeZoneInfo sourceTimeZone, TimeZoneInfo destinationTimeZone);
static member ConvertTime : DateTime * TimeZoneInfo * TimeZoneInfo -> DateTime
Public Shared Function ConvertTime (dateTime As DateTime, sourceTimeZone As TimeZoneInfo, destinationTimeZone As TimeZoneInfo) As DateTime

パラメーター

dateTime
DateTime

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

sourceTimeZone
TimeZoneInfo

dateTime のタイム ゾーン。The time zone of dateTime.

destinationTimeZone
TimeZoneInfo

dateTime の変換先タイム ゾーン。The time zone to convert dateTime to.

戻り値

DateTime

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

例外

dateTime パラメーターの Kind プロパティが Local ですが、sourceTimeZone パラメーターが Local と等しくありません。The Kind property of the dateTime parameter is Local, but the sourceTimeZone parameter does not equal Local.

または-or- dateTime パラメーターの Kind プロパティが Utc ですが、sourceTimeZone パラメーターが Utc と等しくありません。The Kind property of the dateTime parameter is Utc, but the sourceTimeZone parameter does not equal Utc.

または-or- dateTime パラメーターが無効な時刻です (つまり、タイム ゾーンの調整規則に起因して存在しえない時刻を表しています)。The dateTime parameter is an invalid time (that is, it represents a time that does not exist because of a time zone's adjustment rules).

sourceTimeZone パラメーターが null です。The sourceTimeZone parameter is null.

または-or- destinationTimeZone パラメーターが null です。The destinationTimeZone parameter is null.

次の例は、ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) メソッドを使用して、ハワイ標準時から現地時刻に変換する方法を示しています。The following example illustrates the use of the ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) method to convert from Hawaiian Standard Time to local time.

DateTime hwTime = new DateTime(2007, 02, 01, 08, 00, 00);
try
{
   TimeZoneInfo hwZone = TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time");
   Console.WriteLine("{0} {1} is {2} local time.", 
           hwTime, 
           hwZone.IsDaylightSavingTime(hwTime) ? hwZone.DaylightName : hwZone.StandardName, 
           TimeZoneInfo.ConvertTime(hwTime, hwZone, TimeZoneInfo.Local));
}
catch (TimeZoneNotFoundException)
{
   Console.WriteLine("The registry does not define the Hawaiian Standard Time zone.");
}                           
catch (InvalidTimeZoneException)
{
   Console.WriteLine("Registry data on the Hawaiian Standard Time zone has been corrupted.");
}
Dim hwTime As Date = #2/01/2007 8:00:00 AM#
Try
   Dim hwZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time")
   Console.WriteLine("{0} {1} is {2} local time.", _
                     hwTime, _
                     IIf(hwZone.IsDaylightSavingTime(hwTime), hwZone.DaylightName, hwZone.StandardName), _
                     TimeZoneInfo.ConvertTime(hwTime, hwZone, TimeZoneInfo.Local))
Catch e As TimeZoneNotFoundException
   Console.WriteLine("The registry does not define the Hawaiian Standard Time zone.")
Catch e As InvalidTimeZoneException
   Console.WriteLine("Registry data on the Hawaiian Standard Time zone has been corrupted.")
End Try                     

注釈

変換を実行すると、ConvertTime メソッドによって、destinationTimeZone タイムゾーンで有効になっている調整規則が適用されます。When performing the conversion, the ConvertTime method applies any adjustment rules in effect in the destinationTimeZone time zone.

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

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

ConvertTimeFromUtc および ConvertTimeToUtc メソッドを呼び出すことによって、世界協定時刻 (UTC) との間で変換を行うこともできます。You can also convert to or from Coordinated Universal Time (UTC) by calling the ConvertTimeFromUtc and ConvertTimeToUtc methods.

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

条件Condition 返された Kind プロパティ値Returned Kind property value
destinationTimeZone 引数が TimeZoneInfo.Utc です。The destinationTimeZone argument is TimeZoneInfo.Utc. DateTimeKind.Utc
destinationTimeZone 引数が TimeZoneInfo.Local です。The destinationTimeZone argument is TimeZoneInfo.Local. DateTimeKind.Local
その他のすべての日付と時刻の値、変換元のタイムゾーン、および変換先のタイムゾーン。All other date and time values, source time zones, and destination time zones. DateTimeKind.Unspecified

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

dateTime の変換によって DateTime.MaxValueよりも DateTime.MinValue 前の日付と時刻の値が返される場合、このメソッドは DateTime.MinValue または DateTime.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.

dateTime 引数の DateTime.Kind プロパティが DateTimeKind.Local でも、sourceTimeZone 引数が TimeZoneInfo.Localない場合、ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) メソッドは ArgumentException 例外をスローします。The ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) method throws an ArgumentException exception if the DateTime.Kind property of the dateTime argument is DateTimeKind.Local but the sourceTimeZone argument is not TimeZoneInfo.Local. ソースタイムゾーンがローカルタイムゾーンとユニバーサルタイムゾーンのどちらであるかを判断するために、メソッドは、Equals(TimeZoneInfo) メソッドとの値が等しいかどうかをテストするのではなく、参照の等価性をテストします。To determine whether the source time zone is the local time zone or the universal time zone, the method tests for reference equality instead of testing for value equality with the Equals(TimeZoneInfo) method. ローカルタイムゾーンを表すオブジェクト TimeZoneInfo FindSystemTimeZoneById メソッドを呼び出すことによって取得されるオブジェクトは、TimeZoneInfo.Localとの参照等値を持っていないことに注意してください。Note that TimeZoneInfo objects that represent the local time zone and that are retrieved by calling the FindSystemTimeZoneById method do not have referential equality with TimeZoneInfo.Local. さらに、ローカルタイムゾーンまたはユニバーサルタイムゾーンを表すオブジェクト TimeZoneInfoGetSystemTimeZones メソッドによって返されるコレクションを反復処理することによって取得されるオブジェクトには、TimeZoneInfo.Local または TimeZoneInfo.Utcとの参照の等価性がありません。Furthermore, TimeZoneInfo objects that represent the local or universal time zone and that are retrieved by iterating the collection returned by the GetSystemTimeZones method do not have referential equality with TimeZoneInfo.Local or TimeZoneInfo.Utc. 別の方法として、ConvertTimeBySystemTimeZoneId(DateTime, String, String) メソッドを呼び出すこともできます。As an alternative, you can call the ConvertTimeBySystemTimeZoneId(DateTime, String, String) method.

こちらもご覧ください

適用対象