TimeZoneInfo.ConvertTimeFromUtc(DateTime, TimeZoneInfo) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует время в формате UTC во время в указанном часовом поясе.
public:
static DateTime ConvertTimeFromUtc(DateTime dateTime, TimeZoneInfo ^ destinationTimeZone);
public static DateTime ConvertTimeFromUtc (DateTime dateTime, TimeZoneInfo destinationTimeZone);
static member ConvertTimeFromUtc : DateTime * TimeZoneInfo -> DateTime
Public Shared Function ConvertTimeFromUtc (dateTime As DateTime, destinationTimeZone As TimeZoneInfo) As DateTime
Параметры
- dateTime
- DateTime
Время в формате UTC.
- destinationTimeZone
- TimeZoneInfo
Часовой пояс, в который требуется преобразовать dateTime
.
Возвращаемое значение
Дата и время в часовом поясе назначения. Его свойство Kind равно Utc, если значение destinationTimeZone
равно Utc; в противном случае — значение свойства Kind равно Unspecified.
Исключения
destinationTimeZone
имеет значение null
.
Примеры
В следующем примере показано, как преобразовать время в формате UTC в центральное время.
DateTime timeUtc = DateTime.UtcNow;
try
{
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);
Console.WriteLine("The date and time are {0} {1}.",
cstTime,
cstZone.IsDaylightSavingTime(cstTime) ?
cstZone.DaylightName : cstZone.StandardName);
}
catch (TimeZoneNotFoundException)
{
Console.WriteLine("The registry does not define the Central Standard Time zone.");
}
catch (InvalidTimeZoneException)
{
Console.WriteLine("Registry data on the Central Standard Time zone has been corrupted.");
}
let timeUtc = DateTime.UtcNow
try
let cstZone = TimeZoneInfo.FindSystemTimeZoneById "Central Standard Time"
let cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone)
printfn $"The date and time are {cstTime} {if cstZone.IsDaylightSavingTime cstTime then cstZone.DaylightName else cstZone.StandardName}."
with
| :? TimeZoneNotFoundException ->
printfn "The registry does not define the Central Standard Time zone."
| :? InvalidTimeZoneException ->
printfn "Registry data on the Central Standard Time zone has been corrupted."
Dim timeUtc As Date = Date.UtcNow
Try
Dim cstZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time")
Dim cstTime As Date = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone)
Console.WriteLine("The date and time are {0} {1}.", _
cstTime, _
IIf(cstZone.IsDaylightSavingTime(cstTime), _
cstZone.DaylightName, cstZone.StandardName))
Catch e As TimeZoneNotFoundException
Console.WriteLine("The registry does not define the Central Standard Time zone.")
Catch e As InvalidTimeZoneException
Console.WriteLine("Registry data on the Central Standard Time zone has been corrupted.")
End Try
Комментарии
При выполнении преобразования метод применяет все правила корректировки ConvertTimeFromUtc , которые действуют в часовом поясе destinationTimeZone
.
Точное поведение этого метода зависит от значения Kind свойства dateTime
параметра, как показано в следующей таблице.
Свойство DateTime.Kind | Преобразование |
---|---|
DateTimeKind.Local | Создает ArgumentExceptionисключение . |
DateTimeKind.Unspecified либо DateTimeKind.Utc | Преобразуется из времени в формате UTC. |
Если преобразование приводит к значению dateTime
даты и времени, которое раньше DateTime.MinValue или позже DateTime.MaxValue, этот метод возвращает DateTime.MinValue значение или DateTime.MaxValueсоответственно.