TimeZoneInfo.ConvertTimeBySystemTimeZoneId Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует время в время в другом часовом поясе на основе идентификатора часового пояса.
Перегрузки
| Имя | Описание |
|---|---|
| ConvertTimeBySystemTimeZoneId(DateTime, String) |
Преобразует время в время в другом часовом поясе на основе идентификатора часового пояса. |
| ConvertTimeBySystemTimeZoneId(DateTimeOffset, String) |
Преобразует время в время в другом часовом поясе на основе идентификатора часового пояса. |
| ConvertTimeBySystemTimeZoneId(DateTime, String, String) |
Преобразует время из одного часового пояса в другой на основе идентификаторов часового пояса. |
ConvertTimeBySystemTimeZoneId(DateTime, String)
- Исходный код:
- TimeZoneInfo.cs
- Исходный код:
- TimeZoneInfo.cs
- Исходный код:
- TimeZoneInfo.cs
- Исходный код:
- TimeZoneInfo.cs
- Исходный код:
- TimeZoneInfo.cs
Преобразует время в время в другом часовом поясе на основе идентификатора часового пояса.
public:
static DateTime ConvertTimeBySystemTimeZoneId(DateTime dateTime, System::String ^ destinationTimeZoneId);
public static DateTime ConvertTimeBySystemTimeZoneId(DateTime dateTime, string destinationTimeZoneId);
static member ConvertTimeBySystemTimeZoneId : DateTime * string -> DateTime
Public Shared Function ConvertTimeBySystemTimeZoneId (dateTime As DateTime, destinationTimeZoneId As String) As DateTime
Параметры
- dateTime
- DateTime
Дата и время преобразования.
- destinationTimeZoneId
- String
Идентификатор часового пояса назначения.
Возвращаемое значение
Дата и время в часовом поясе назначения.
Исключения
destinationTimeZoneId равно null.
Идентификатор часового пояса найден, но данные реестра повреждены.
Процесс не имеет разрешений, необходимых для чтения из раздела реестра, содержащего сведения о часовом поясе.
Идентификатор destinationTimeZoneId не найден в локальной системе.
Комментарии
При преобразовании ConvertTimeBySystemTimeZoneId метод применяет все правила корректировки, действующие в часовом поясе destinationTimeZoneId .
Эта перегрузка в значительной степени идентична вызову ConvertTime(DateTime, TimeZoneInfo) метода, за исключением того, что она позволяет указать часовой пояс назначения по идентификатору, а не по ссылке на объект. Этот метод наиболее полезен, если необходимо преобразовать время без получения объекта часового пояса, соответствующего этому объекту, и вам не нужно знать, является ли преобразованное время стандартным или дневным.
Метод ConvertTimeBySystemTimeZoneId(DateTime, String) определяет исходный часовой пояс из значения dateTime свойства параметра Kind , как показано в следующей таблице.
| Значение свойства Kind | Исходный часовой пояс | Поведение метода |
|---|---|---|
| DateTimeKind.Local | Local | Преобразует местное время в время.destinationTimeZone |
| DateTimeKind.Utc | Utc | Преобразует координированное универсальное время (UTC) в время в destinationTimeZone. |
| DateTimeKind.Unspecified | Предполагается, что это Local. | Преобразует местное время в время.destinationTimeZone |
Свойство Kind возвращаемого DateTime значения задано, как показано в следующей таблице.
| Состояние | Возвращаемое значение свойства Kind |
|---|---|
Значение параметра destinationTimeZone — TimeZoneInfo.Utc.Id. |
DateTimeKind.Utc |
Любое другое destinationTimeZone значение. |
DateTimeKind.Unspecified |
Если значение dateTime параметра является неоднозначным локальным временем, оно интерпретируется как стандартное время.
dateTime Если параметр является недопустимым локальным временем, этот метод вызывает ArgumentExceptionисключение.
Если преобразование dateTime результатов в значение даты и времени, которое DateTime.MinValue раньше или более DateTime.MaxValueпоздней версии, этот метод возвращает DateTime.MinValue или DateTime.MaxValueсоответственно.
Этот метод получает сведения о часовом поясе, идентификатор которого указан destinationTimeZoneId параметром из реестра в системах Windows и из библиотеки ICU в Linux и macOS. Он не может получить объект часового пояса CreateCustomTimeZone , созданный с помощью метода. Параметр destinationTimeZoneId должен точно соответствовать идентификатору часового пояса длиной, но не в случае успешного сопоставления; то есть сравнение destinationTimeZoneId идентификаторов часового пояса не учитывает регистр.
См. также раздел
Применяется к
ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)
- Исходный код:
- TimeZoneInfo.cs
- Исходный код:
- TimeZoneInfo.cs
- Исходный код:
- TimeZoneInfo.cs
- Исходный код:
- TimeZoneInfo.cs
- Исходный код:
- TimeZoneInfo.cs
Преобразует время в время в другом часовом поясе на основе идентификатора часового пояса.
public:
static DateTimeOffset ConvertTimeBySystemTimeZoneId(DateTimeOffset dateTimeOffset, System::String ^ destinationTimeZoneId);
public static DateTimeOffset ConvertTimeBySystemTimeZoneId(DateTimeOffset dateTimeOffset, string destinationTimeZoneId);
static member ConvertTimeBySystemTimeZoneId : DateTimeOffset * string -> DateTimeOffset
Public Shared Function ConvertTimeBySystemTimeZoneId (dateTimeOffset As DateTimeOffset, destinationTimeZoneId As String) As DateTimeOffset
Параметры
- dateTimeOffset
- DateTimeOffset
Дата и время преобразования.
- destinationTimeZoneId
- String
Идентификатор часового пояса назначения.
Возвращаемое значение
Дата и время в часовом поясе назначения.
Исключения
destinationTimeZoneId равно null.
Идентификатор часового пояса найден, но данные реестра повреждены.
Процесс не имеет разрешений, необходимых для чтения из раздела реестра, содержащего сведения о часовом поясе.
Идентификатор destinationTimeZoneId не найден в локальной системе.
Комментарии
При преобразовании ConvertTimeBySystemTimeZoneId метод применяет все правила корректировки, действующие в часовом поясе destinationTimeZoneId .
Эта перегрузка идентична вызову ConvertTime(DateTimeOffset, TimeZoneInfo) метода, за исключением того, что она позволяет указать часовой пояс назначения по идентификатору, а не по ссылке на объект. Этот метод наиболее полезен, если необходимо преобразовать время без получения объекта часового пояса, соответствующего этому объекту, и вам не нужно знать, является ли преобразованное время стандартным или дневным.
dateTimeOffset Так как параметр представляет дату и время вместе с смещением времени от согласованного универсального времени (UTC), он не может представлять неоднозначное время или недопустимое время.
Этот метод извлекает часовой пояс, идентификатор которого указан destinationTimeZoneId параметром из реестра в системах Windows и из библиотеки ICU в Linux и macOS. Он не может получить объект часового пояса CreateCustomTimeZone , созданный с помощью метода. Параметр destinationTimeZoneId должен точно соответствовать идентификатору часового пояса длиной, но не в случае успешного сопоставления; то есть сравнение destinationTimeZoneId идентификаторов часового пояса не учитывает регистр.
При преобразовании dateTimeOffset значения в время в часовом поясе назначения метод учитывает все правила корректировки, действующие в часовом поясе назначения.
Если преобразование dateTimeOffset результатов в значение даты и времени, которое DateTimeOffset.MinValue раньше или более DateTimeOffset.MaxValueпоздней версии, этот метод возвращает DateTimeOffset.MinValue или DateTimeOffset.MaxValueсоответственно.
См. также раздел
Применяется к
ConvertTimeBySystemTimeZoneId(DateTime, String, String)
- Исходный код:
- TimeZoneInfo.cs
- Исходный код:
- TimeZoneInfo.cs
- Исходный код:
- TimeZoneInfo.cs
- Исходный код:
- TimeZoneInfo.cs
- Исходный код:
- TimeZoneInfo.cs
Преобразует время из одного часового пояса в другой на основе идентификаторов часового пояса.
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
Public Shared Function ConvertTimeBySystemTimeZoneId (dateTime As DateTime, sourceTimeZoneId As String, destinationTimeZoneId As String) As DateTime
Параметры
- dateTime
- DateTime
Дата и время преобразования.
- sourceTimeZoneId
- String
Идентификатор исходного часового пояса.
- destinationTimeZoneId
- String
Идентификатор часового пояса назначения.
Возвращаемое значение
Дата и время в часовом поясе назначения, соответствующее dateTime параметру в исходном часовом поясе.
Исключения
Kind Свойство dateTime параметра не соответствует исходному часовому поясу.
–или–
dateTime является недопустимым временем в исходном часовом поясе.
Обнаружены идентификаторы часового пояса, но данные реестра повреждены.
У пользователя нет разрешений, необходимых для чтения из разделов реестра, в которых хранятся данные часового пояса.
Идентификатор sourceTimeZoneId не найден в локальной системе.
–или–
Идентификатор destinationTimeZoneId не найден в локальной системе.
Примеры
В следующем примере метод используется TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) для отображения времени, соответствующего местному системном времени в восьми городах мира.
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"));
let currentTime = DateTime.Now
printfn "Current Times:\n"
printfn $"""Los Angeles: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Pacific Standard Time")}"""
printfn $"""Chicago: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Central Standard Time")}"""
printfn $"""New York: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Eastern Standard Time")}"""
printfn $"""London: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "GMT Standard Time")}"""
printfn $"""Moscow: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Russian Standard Time")}"""
printfn $"""New Delhi: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "India Standard Time")}"""
printfn $"""Beijing: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "China Standard Time")}"""
printfn $"""Tokyo: {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 .
Несмотря на то, что он аналогичен методу TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) , можно указать TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) исходные и конечные часовые пояса, используя их идентификаторы вместо их TimeZoneInfo объектов. Этот метод наиболее полезен, если необходимо преобразовать время без получения объекта часового пояса, соответствующего этому объекту, и вам не нужно знать, является ли преобразованное время стандартным или дневным.
Этот метод извлекает часовые пояса, идентификаторы которых являются sourceTimeZoneId идентификаторами и destinationTimeZoneId параметрами реестра в системах Windows, а также из библиотеки ICU в Linux и macOS. Не удается получить объекты часового пояса CreateCustomTimeZone , созданные с помощью метода.
Значение Kind свойства dateTime параметра должно соответствовать sourceTimeZoneId параметру, как показано в следующей таблице.
| Значение DateTime.Kind | значение sourceTimeZone | Поведение метода |
|---|---|---|
| DateTimeKind.Utc |
TimeZoneInfo.Utc.IdРавно. |
dateTime Преобразуется в время целевого часового пояса. |
| DateTimeKind.Utc | Не равно TimeZoneInfo.Utc.Id. |
ArgumentExceptionСоздает исключение . |
| DateTimeKind.Local |
TimeZoneInfo.Local.IdРавно. |
dateTime Преобразуется в время целевого часового пояса. |
| DateTimeKind.Local | Не равно TimeZoneInfo.Local.Id. |
ArgumentExceptionСоздает исключение . |
| DateTimeKind.Unspecified | Любой. |
dateTime Преобразуется в время целевого часового пояса. |
Так как он зависит от вызовов FindSystemTimeZoneById метода, ConvertTimeBySystemTimeZoneId метод выполняет поиск без учета регистра для поиска часовых поясов, соответствующих sourceTimeZoneId и destinationTimeZoneId.
Если значение dateTime параметра является неоднозначным временем в исходном часовом поясе, оно интерпретируется как стандартное время.
dateTime Если параметр является недопустимым временем в исходном часовом поясе, этот метод вызывает исключениеArgumentException.
Свойство Kind возвращаемого DateTime значения имеет DateTimeKind.Unspecified значение, если целевой часовой пояс не является универсальным часовым поясом (UTC), в этом случае он имеет значение DateTimeKind.Utc.