TimeZoneInfo.ConvertTimeBySystemTimeZoneId TimeZoneInfo.ConvertTimeBySystemTimeZoneId TimeZoneInfo.ConvertTimeBySystemTimeZoneId Method

Определение

Преобразует время во время в другом часовом поясе, исходя из идентификатора этого пояса.Converts a time to the time in another time zone based on a time zone identifier.

Перегрузки

ConvertTimeBySystemTimeZoneId(DateTime, String) ConvertTimeBySystemTimeZoneId(DateTime, String) ConvertTimeBySystemTimeZoneId(DateTime, String)

Преобразует время во время в другом часовом поясе, исходя из идентификатора этого пояса.Converts a time to the time in another time zone based on the time zone's identifier.

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String) ConvertTimeBySystemTimeZoneId(DateTimeOffset, String) ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Преобразует время во время в другом часовом поясе, исходя из идентификатора этого пояса.Converts a time to the time in another time zone based on the time zone's identifier.

ConvertTimeBySystemTimeZoneId(DateTime, String, String) ConvertTimeBySystemTimeZoneId(DateTime, String, String) ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Преобразует время в одном часовом поясе во время в другом, исходя из идентификаторов этих поясов.Converts a time from one time zone to another based on time zone identifiers.

ConvertTimeBySystemTimeZoneId(DateTime, String) ConvertTimeBySystemTimeZoneId(DateTime, String) ConvertTimeBySystemTimeZoneId(DateTime, String)

Преобразует время во время в другом часовом поясе, исходя из идентификатора этого пояса.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 DateTime DateTime

Преобразовываемые дата и время.The date and time to convert.

destinationTimeZoneId
String String String

Идентификатор часового пояса назначения.The identifier of the destination time zone.

Возвраты

Дата и время в часовом поясе назначения.The date and time in the destination time zone.

Исключения

destinationTimeZoneIdnull.destinationTimeZoneId is null.

Идентификатор часового пояса найден, однако данные реестра повреждены.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 не найден в локальной системе.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.

Значение свойства KindKind property value Исходный часовой поясSource time zone Поведение методаMethod behavior
DateTimeKind.Local Local Преобразует местное время во время в destinationTimeZone.Converts the local time to the time in destinationTimeZone.
DateTimeKind.Utc 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 Тип возвращаемого значения свойства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. Если dateTime параметр является недопустимым временем местное, этот метод выдает ArgumentException.If the dateTime parameter is an invalid local time, this method throws an ArgumentException.

Если преобразование dateTime приводит к значению даты и времени, более ранняя, чем DateTime.MinValue или более поздней версии, чем DateTime.MaxValue, этот метод возвращает 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.

Этот метод извлекает сведения о часовом поясе, идентификатор которого задается destinationTimeZoneId параметр из реестра в системах Windows и из ICU библиотеки в Linux и macOS.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) ConvertTimeBySystemTimeZoneId(DateTimeOffset, String) ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Преобразует время во время в другом часовом поясе, исходя из идентификатора этого пояса.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 DateTimeOffset DateTimeOffset

Преобразовываемые дата и время.The date and time to convert.

destinationTimeZoneId
String String String

Идентификатор часового пояса назначения.The identifier of the destination time zone.

Возвраты

Дата и время в часовом поясе назначения.The date and time in the destination time zone.

Исключения

destinationTimeZoneIdnull.destinationTimeZoneId is null.

Идентификатор часового пояса найден, однако данные реестра повреждены.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 не найден в локальной системе.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.

Этот метод извлекает часовой пояс, идентификатор которого задается destinationTimeZoneId параметр из реестра в системах Windows и из ICU библиотеки в Linux и macOS.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.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.

Дополнительно

ConvertTimeBySystemTimeZoneId(DateTime, String, String) ConvertTimeBySystemTimeZoneId(DateTime, String, String) ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Преобразует время в одном часовом поясе во время в другом, исходя из идентификаторов этих поясов.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 DateTime DateTime

Преобразовываемые дата и время.The date and time to convert.

sourceTimeZoneId
String String String

Идентификатор исходного часового пояса.The identifier of the source time zone.

destinationTimeZoneId
String String String

Идентификатор часового пояса назначения.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.

Исключения

Значение свойства Kind параметра dateTime не соответствует исходному часовому поясу.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.

Идентификаторы часовых поясов найдены, однако данные реестра повреждены.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 не найден в локальной системе.The sourceTimeZoneId identifier was not found on the local system.

-или--or- Идентификатор destinationTimeZoneId не найден в локальной системе.The destinationTimeZoneId identifier was not found on the local system.

Примеры

В следующем примере используется TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) метод для отображения времени, соответствующий в локальное системное время в восемь городах мира.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.

Этот метод извлекает часовых поясов, идентификаторы которых находятся sourceTimeZoneId и destinationTimeZoneId параметров из реестра в системах Windows и из ICU библиотеки в Linux и macOS.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 свойство dateTime параметр должен соответствовать sourceTimeZoneId параметра, как показано в следующей таблице.The value of the Kind property of the dateTime parameter must correspond to the sourceTimeZoneId parameter, as the following table shows.

Значение DateTime.KindDateTime.Kind value значение sourceTimeZonesourceTimeZone value Поведение методаMethod behavior
DateTimeKind.Utc Равняется TimeZoneInfo.Utc.Id.Equals TimeZoneInfo.Utc.Id. Преобразует dateTime время в часовом поясе назначения.Converts dateTime to the destination time zone's time.
DateTimeKind.Utc Не равно 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 Не равно 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. Если dateTime параметр является недопустимым временем в исходном часовом поясе, этот метод выдает ArgumentException.If the dateTime parameter is an invalid time in the source time zone, this method throws an ArgumentException.

Kind Свойства возвращаемого DateTime присваивается значение DateTimeKind.Unspecified Если часовой пояс назначения не является временем в формате UTC, в противном случае он становится равным DateTimeKind.Utc.The 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.

Дополнительно

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