TimeZoneInfo.ConvertTimeBySystemTimeZoneId Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует время во время в другом часовом поясе, исходя из идентификатора этого пояса.
Перегрузки
ConvertTimeBySystemTimeZoneId(DateTime, String) |
Преобразует время во время в другом часовом поясе, исходя из идентификатора этого пояса. |
ConvertTimeBySystemTimeZoneId(DateTimeOffset, String) |
Преобразует время во время в другом часовом поясе, исходя из идентификатора этого пояса. |
ConvertTimeBySystemTimeZoneId(DateTime, String, String) |
Преобразует время в одном часовом поясе во время в другом, исходя из идентификаторов этих поясов. |
ConvertTimeBySystemTimeZoneId(DateTime, String)
- Исходный код:
- 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
Преобразует время во время в другом часовом поясе, исходя из идентификатора этого пояса.
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
Преобразует время в одном часовом поясе во время в другом, исходя из идентификаторов этих поясов.
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
имеет значение null
.
-или-
destinationTimeZoneId
имеет значение null
.
Идентификаторы часового пояса найдены, однако данные реестра повреждены.
У пользователя нет разрешений, необходимых для чтения из разделов реестра, которые содержат сведения о часовом поясе.
Идентификатор 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 | Does not equal TimeZoneInfo.Utc.Id . |
Создает ArgumentExceptionисключение . |
DateTimeKind.Local | Равно TimeZoneInfo.Local.Id . |
Преобразует dateTime в часовой пояс назначения. |
DateTimeKind.Local | Does not equal TimeZoneInfo.Local.Id . |
Создает ArgumentExceptionисключение . |
DateTimeKind.Unspecified | Любой. | Преобразует dateTime в часовой пояс назначения. |
Так как он использует вызовы FindSystemTimeZoneById метода , ConvertTimeBySystemTimeZoneId метод выполняет поиск без учета регистра, чтобы найти часовые пояса, соответствующие sourceTimeZoneId
и destinationTimeZoneId
.
Если значение dateTime
параметра является неоднозначным временем в исходном часовом поясе, оно интерпретируется как стандартное время.
dateTime
Если параметр является недопустимым временем в исходном часовом поясе, этот метод вызывает исключение ArgumentException.
Свойству Kind возвращаемого DateTime значения присваивается значение , DateTimeKind.Unspecified если часовой пояс назначения не является часовым поясом в формате UTC, в этом случае ему присваивается значение DateTimeKind.Utc.