Метод DateTimeOffset.Parse
Метод Parse использует
CultureInfo.InvariantCulture.
В строке может быть суффикс
"+03:00". Дата без смещения -
DateTime.Parse.
Вывод -
ToString
с форматом.
Синтаксис
using System.Globalization;
DateTimeOffset dto = DateTimeOffset.Parse(text, CultureInfo.InvariantCulture);
Пример
Давайте разберём "2020-01-02T03:04:05+03:00":
using System;
using System.Globalization;
class Program
{
static void Main()
{
DateTimeOffset res = DateTimeOffset.Parse(
"2020-01-02T03:04:05+03:00",
CultureInfo.InvariantCulture);
Console.WriteLine(res.Hour);
Console.WriteLine(res.Offset.TotalHours);
}
}
Результат выполнения кода:
3
3
Пример
Давайте поймаем FormatException
для "abcde":
using System;
using System.Globalization;
class Program
{
static void Main()
{
try
{
DateTimeOffset.Parse("abcde", CultureInfo.InvariantCulture);
}
catch (FormatException)
{
Console.WriteLine("fail");
}
}
}
Результат выполнения кода:
"fail"
Пример
Давайте сравнить UTC-момент с
TimeSpan.Zero в строке:
using System;
using System.Globalization;
class Program
{
static void Main()
{
DateTimeOffset res = DateTimeOffset.Parse(
"2020-01-02T00:00:00+00:00",
CultureInfo.InvariantCulture);
Console.WriteLine(res.UtcDateTime.Hour);
Console.WriteLine(res.Offset == TimeSpan.Zero);
}
}
Результат выполнения кода:
0
True
Смотрите также
-
ToString,
строка со смещением -
Offset,
смещение значения -
DateTime.Parse,
без смещения -
DateTimeOffset,
момент и пояс