DateTimeStyles
DateTimeStyles - набор флагов
для методов
ParseExact
и
TryParseExact.
AssumeUniversal без
AdjustToUniversal сдвигает часы
в местный пояс - такой час в вывод
не кладут. Стабильно используют оба
флага вместе. None равен 0.
Синтаксис
using System.Globalization;
var styles = DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal;
DateTime dt = DateTime.ParseExact(text, format, CultureInfo.InvariantCulture, styles);
Пример
Давайте разберём UTC-строку с
AssumeUniversal и
AdjustToUniversal:
using System;
using System.Globalization;
class Program
{
static void Main()
{
var styles = DateTimeStyles.AssumeUniversal
| DateTimeStyles.AdjustToUniversal;
DateTime res = DateTime.ParseExact(
"2020-01-02T03:04:05",
"yyyy-MM-dd'T'HH:mm:ss",
CultureInfo.InvariantCulture,
styles);
Console.WriteLine(res.Hour);
Console.WriteLine(res.Kind == DateTimeKind.Utc);
}
}
Результат выполнения кода:
3
True
Пример
Давайте разрешим пробелы через
AllowWhiteSpaces:
using System;
using System.Globalization;
class Program
{
static void Main()
{
DateTime res = DateTime.ParseExact(
" 2020-01-02 ",
"yyyy-MM-dd",
CultureInfo.InvariantCulture,
DateTimeStyles.AllowWhiteSpaces);
Console.WriteLine(res.Day);
}
}
Результат выполнения кода:
2
Пример
Давайте проверим, что None
- нулевой флаг:
using System;
using System.Globalization;
class Program
{
static void Main()
{
bool res = DateTimeStyles.None == 0;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Смотрите также
-
ParseExact,
разбор с флагами -
TryParseExact,
то же без исключения -
ToString,
строка для шаблона -
IsLeapYear,
год в разобранной дате