Поделиться через


TimeZoneInfo.ConvertTime Метод

Определение

Преобразует время в определенный часовой пояс.

Перегрузки

ConvertTime(DateTime, TimeZoneInfo)

Преобразует время в определенный часовой пояс.

ConvertTime(DateTimeOffset, TimeZoneInfo)

Преобразует время в определенный часовой пояс.

ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo)

Преобразует время из одного часового пояса в другой.

ConvertTime(DateTime, TimeZoneInfo)

Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs

Преобразует время в определенный часовой пояс.

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

Дата и время преобразования.

destinationTimeZone
TimeZoneInfo

Часовой пояс для преобразования dateTime в.

Возвращаемое значение

Дата и время в часовом поясе назначения.

Исключения

Значение параметра dateTime представляет недопустимое время.

Значение параметра destinationTimeZone равно null.

Примеры

В следующем примере массив значений даты и времени преобразуется в время в восточном часовом поясе США и Канады. В нем показано, что исходный часовой пояс зависит от свойства DateTime.Kind исходного значения DateTime. В нем также показано, что метод ConvertTime учитывает корректировки часового пояса, так как корректировка часового пояса происходит как в часовых поясах источника, так и в конечных часовых поясах в 2:00 утра 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.
open System

// Define times to be converted.
let times = 
    [| DateTime(2010, 1, 1, 0, 1, 0)
       DateTime(2010, 1, 1, 0, 1, 0, DateTimeKind.Utc)
       DateTime(2010, 1, 1, 0, 1, 0, DateTimeKind.Local)
       DateTime(2010, 11, 6, 23, 30, 0)
       DateTime(2010, 11, 7, 2, 30, 0) |]
                        
// Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
try
    let est = TimeZoneInfo.FindSystemTimeZoneById "Eastern Standard Time"

    // Display the current time zone name.
    printfn $"Local time zone: {TimeZoneInfo.Local.DisplayName}\n"

    // Convert each time in the array.
    for timeToConvert in times do
        let targetTime = TimeZoneInfo.ConvertTime(timeToConvert, est)
        printfn $"Converted {timeToConvert} {timeToConvert.Kind} to {targetTime}."
with
| :? TimeZoneNotFoundException ->
    printfn "Unable to retrieve the Eastern Standard time zone."
| :? InvalidTimeZoneException ->
    printfn "Unable to retrieve the Eastern Standard time zone."
// 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.

Эта перегрузка метода ConvertTime(DateTime, TimeZoneInfo) определяет исходный часовой пояс из значения свойства Kind параметра dateTime, как показано в следующей таблице.

Значение свойства Kind Исходный часовой пояс Поведение метода
DateTimeKind.Local Local Преобразует локальное время в время destinationTimeZone.
DateTimeKind.Utc Utc Преобразует координированное универсальное время (UTC) в время в destinationTimeZone.
DateTimeKind.Unspecified Предполагается, что Local. Преобразует локальное время в время destinationTimeZone.

Свойство Kind возвращаемого значения DateTime задано, как показано в следующей таблице.

Состояние Возвращаемое значение свойства Kind
destinationTimeZone TimeZoneInfo.Utc. DateTimeKind.Utc
destinationTimeZone TimeZoneInfo.Local. DateTimeKind.Local
Все остальные значения даты и времени и часовых поясов назначения. DateTimeKind.Unspecified

Если значение параметра dateTime является неоднозначным локальным временем, оно интерпретируется как стандартное время. Если параметр dateTime является недопустимым локальным временем, этот метод создает ArgumentException.

Если преобразование dateTime приводит к значению даты и времени, которое раньше DateTime.MinValue или более поздней DateTime.MaxValue, этот метод возвращает DateTime.MinValue или DateTime.MaxValueсоответственно.

Вы также можете преобразовать или из UTC, вызвав методы ConvertTimeFromUtc и ConvertTimeToUtc.

См. также раздел

Применяется к

ConvertTime(DateTimeOffset, TimeZoneInfo)

Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs

Преобразует время в определенный часовой пояс.

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

Дата и время преобразования.

destinationTimeZone
TimeZoneInfo

Часовой пояс для преобразования dateTimeOffset в.

Возвращаемое значение

Дата и время в часовом поясе назначения.

Исключения

Значение параметра destinationTimeZone равно null.

Примеры

В следующем примере массив значений DateTimeOffset преобразуется в время в восточном часовом поясе США и Канады. В нем показано, что метод ConvertTime учитывает корректировки часового пояса, так как корректировка часового пояса происходит как в часовых поясах источника, так и в конечных часовых поясах в 2:00 утра 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.
open System

// Define times to be converted.
let time1 = DateTime(2010, 1, 1, 12, 1, 0)
let time2 = DateTime(2010, 11, 6, 23, 30, 0)
let times = 
    [| DateTimeOffset(time1, TimeZoneInfo.Local.GetUtcOffset time1)
       DateTimeOffset(time1, TimeSpan.Zero)
       DateTimeOffset(time2, TimeZoneInfo.Local.GetUtcOffset time2)
       DateTimeOffset(time2.AddHours 3, TimeZoneInfo.Local.GetUtcOffset(time2.AddHours 3)) |]
                        
// Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
try
    let est = TimeZoneInfo.FindSystemTimeZoneById "Eastern Standard Time"

    // Display the current time zone name.
    printfn $"Local time zone: {TimeZoneInfo.Local.DisplayName}\n"

    // Convert each time in the array.
    for timeToConvert in times do
        let targetTime = TimeZoneInfo.ConvertTime(timeToConvert, est)
        printfn $"Converted {timeToConvert} to {targetTime}."
with
| :? TimeZoneNotFoundException ->
    printfn "Unable to retrieve the Eastern Standard time zone."
| :? InvalidTimeZoneException ->
    printfn "Unable to retrieve the Eastern Standard time zone."
// 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.

Эта перегрузка отличается от других перегрузки метода ConvertTime путем принятия значения DateTimeOffset в качестве первого параметра. Это определяет дату и время как смещение от согласованного универсального времени (UTC), а не в качестве даты и времени в определенном часовом поясе. В результате параметр dateTimeOffset не может представлять неоднозначное время или недопустимое время.

При преобразовании значения dateTimeOffset в время в часовом поясе назначения этот метод учитывает все правила корректировки, действующие в часовом поясе назначения.

Если преобразование dateTimeOffset приводит к значению даты и времени, которое раньше DateTimeOffset.MinValue или более поздней DateTimeOffset.MaxValue, этот метод возвращает DateTimeOffset.MinValue или DateTimeOffset.MaxValueсоответственно.

См. также раздел

Применяется к

ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo)

Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs

Преобразует время из одного часового пояса в другой.

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

Дата и время преобразования.

sourceTimeZone
TimeZoneInfo

Часовой пояс dateTime.

destinationTimeZone
TimeZoneInfo

Часовой пояс для преобразования dateTime в.

Возвращаемое значение

Дата и время в часовом поясе назначения, соответствующее параметру dateTime в исходном часовом поясе.

Исключения

Свойство Kind параметра dateTimeLocal, но параметр sourceTimeZone не равен Local.

-или-

Свойство Kind параметра dateTimeUtc, но параметр sourceTimeZone не равен Utc.

-или-

Параметр dateTime является недопустимым временем (то есть представляет время, которое не существует из-за правил корректировки часового пояса).

Параметр sourceTimeZonenull.

-или-

Параметр destinationTimeZonenull.

Примеры

В следующем примере показано использование метода ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) для преобразования из гавайского стандартного времени в местное время.

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.");
}
let hwTime = DateTime(2007, 02, 01, 08, 00, 00)
try
    let hwZone = TimeZoneInfo.FindSystemTimeZoneById "Hawaiian Standard Time"
    printfn $"{hwTime} {if hwZone.IsDaylightSavingTime hwTime then hwZone.DaylightName else hwZone.StandardName} is {TimeZoneInfo.ConvertTime(hwTime, hwZone, TimeZoneInfo.Local)} local time." 
with
| :? TimeZoneNotFoundException ->
    printfn "The registry does not define the Hawaiian Standard Time zone."
| :? InvalidTimeZoneException ->
    printfn "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.

Значение свойства Kind параметра dateTime должно соответствовать параметру sourceTimeZone, как показано в следующей таблице.

Значение DateTime.Kind значение sourceTimeZone Поведение метода
DateTimeKind.Utc Равно TimeZoneInfo.Utc. Преобразует dateTime в время часового пояса назначения.
DateTimeKind.Utc Не равно TimeZoneInfo.Utc. Создает ArgumentException.
DateTimeKind.Local Равно TimeZoneInfo.Local. Преобразует dateTime в время часового пояса назначения.
DateTimeKind.Local Не равно TimeZoneInfo.Local. Создает ArgumentException.
DateTimeKind.Unspecified Любой. Преобразует dateTime в время часового пояса назначения.

Вы также можете преобразовать в универсальный код времени (UTC) или из нее, вызвав методы ConvertTimeFromUtc и ConvertTimeToUtc.

Свойство Kind возвращаемого значения DateTime задано, как показано в следующей таблице.

Состояние Возвращаемое значение свойства Kind
Аргумент destinationTimeZoneTimeZoneInfo.Utc. DateTimeKind.Utc
Аргумент destinationTimeZoneTimeZoneInfo.Local. DateTimeKind.Local
Все остальные значения даты и времени, часовых поясов источника и часовых поясов назначения. DateTimeKind.Unspecified

Если значение параметра dateTime является неоднозначным временем в исходном часовом поясе, оно интерпретируется как стандартное время. Если параметр dateTime является недопустимым временем в исходном часовом поясе, этот метод создает ArgumentException.

Если преобразование dateTime приводит к значению даты и времени, которое раньше DateTime.MinValue или более поздней DateTime.MaxValue, этот метод возвращает DateTime.MinValue или DateTime.MaxValueсоответственно.

Метод ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) вызывает исключение ArgumentException, если свойство DateTime.Kind аргумента dateTimeDateTimeKind.Local, но аргумент sourceTimeZone не TimeZoneInfo.Local. Чтобы определить, является ли исходный часовой пояс локальным часовом поясом или универсальным часовом поясом, метод проверяет равенство ссылок вместо тестирования на равенство значений с методом Equals(TimeZoneInfo). Обратите внимание, что TimeZoneInfo объекты, представляющие локальный часовой пояс и извлекаемые путем вызова метода FindSystemTimeZoneById, не имеют ссылочной равенства с TimeZoneInfo.Local. Кроме того, TimeZoneInfo объекты, представляющие локальный или универсальный часовой пояс и извлекаемые путем итерации коллекции, возвращаемой методом GetSystemTimeZones, не имеют ссылочной равенства с TimeZoneInfo.Local или TimeZoneInfo.Utc. В качестве альтернативы можно вызвать метод ConvertTimeBySystemTimeZoneId(DateTime, String, String).

См. также раздел

Применяется к