TimeZoneInfo.ConvertTimeBySystemTimeZoneId Метод

Определение

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

Перегрузки

ConvertTimeBySystemTimeZoneId(DateTime, String)

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

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

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

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

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

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

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

destinationTimeZoneId
String

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

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

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

Исключения

Свойство destinationTimeZoneId имеет значение null.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) определяет исходный часовой пояс из значения свойства Kind параметра dateTime, как показано в следующей таблице.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 в 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 Возвращаемое значение свойства KindReturned Kind property value
Свойство destinationTimeZone имеет значение TimeZoneInfo.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)

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

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

destinationTimeZoneId
String

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

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

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

Исключения

Свойство destinationTimeZoneId имеет значение null.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)

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

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

sourceTimeZoneId
String

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

destinationTimeZoneId
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.

Свойство sourceTimeZoneId имеет значение null.sourceTimeZoneId is null.

-или--or- Свойство destinationTimeZoneId имеет значение null.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 значение СаурцетимезонеsourceTimeZone value Поведение методаMethod behavior
DateTimeKind.Utc Равно TimeZoneInfo.Utc.Id.Equals TimeZoneInfo.Utc.Id. Преобразует dateTime в время часового пояса назначения.Converts dateTime to the destination time zone's time.
DateTimeKind.Utc Does not equal 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 Does not equal 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.

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

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