Метод ConvertTimeFromUtc
Метод ConvertTimeFromUtc
статический. Результат для
пользовательского пояса имеет
DateTimeKind.Unspecified,
не Local. Обратный путь -
ConvertTimeToUtc.
Синтаксис
DateTime local = TimeZoneInfo.ConvertTimeFromUtc(dateTime, destinationTimeZone);
Пример
Давайте перевести полночь UTC
в пояс +3:
using System;
class Program
{
static void Main()
{
var zone = TimeZoneInfo.CreateCustomTimeZone(
"abcde", TimeSpan.FromHours(3), "abcde", "abcde");
DateTime res = TimeZoneInfo.ConvertTimeFromUtc(
new DateTime(2020, 1, 2, 0, 0, 0, DateTimeKind.Utc),
zone);
Console.WriteLine(res.Hour);
}
}
Результат выполнения кода:
3
Пример
Давайте проверить Kind
результата:
using System;
class Program
{
static void Main()
{
var zone = TimeZoneInfo.CreateCustomTimeZone(
"abcde", TimeSpan.FromHours(3), "abcde", "abcde");
DateTime res = TimeZoneInfo.ConvertTimeFromUtc(
new DateTime(2020, 1, 2, 0, 0, 0, DateTimeKind.Utc),
zone);
Console.WriteLine(res.Kind == DateTimeKind.Unspecified);
}
}
Результат выполнения кода:
True
Пример
Давайте убедиться, что исходный UTC не меняется:
using System;
class Program
{
static void Main()
{
var zone = TimeZoneInfo.CreateCustomTimeZone(
"abcde", TimeSpan.FromHours(3), "abcde", "abcde");
var utc = new DateTime(2020, 1, 2, 0, 0, 0, DateTimeKind.Utc);
TimeZoneInfo.ConvertTimeFromUtc(utc, zone);
Console.WriteLine(utc.Hour);
}
}
Результат выполнения кода:
0
Смотрите также
-
ConvertTimeToUtc,
в UTC -
BaseUtcOffset,
смещение пояса -
TimeSpan,
+3часа -
DateTimeOffset,
момент со смещением