Метод DateOnly.ToDateTime
Метод ToDateTime принимает
TimeOnly
и возвращает DateTime с
Kind.Unspecified. Есть перегрузка
с DateTimeKind: часы не сдвигаются,
меняется только метка.
Синтаксис
DateTime dt = dateOnly.ToDateTime(timeOnly);
DateTime utc = dateOnly.ToDateTime(timeOnly, DateTimeKind.Utc);
Пример
Давайте соберём 2020-01-02
и 03:04:05:
using System;
class Program
{
static void Main()
{
var date = new DateOnly(2020, 1, 2);
var time = new TimeOnly(3, 4, 5);
DateTime res = date.ToDateTime(time);
Console.WriteLine(res.Hour);
Console.WriteLine(res.Minute);
Console.WriteLine(res.Second);
Console.WriteLine(res.Day);
Console.WriteLine(res.Kind == DateTimeKind.Unspecified);
}
}
Результат выполнения кода:
3
4
5
2
True
Пример
Давайте задать DateTimeKind.Utc
без смены часов:
using System;
class Program
{
static void Main()
{
var date = new DateOnly(2020, 1, 2);
var time = new TimeOnly(3, 4, 5);
DateTime res = date.ToDateTime(time, DateTimeKind.Utc);
Console.WriteLine(res.Hour);
Console.WriteLine(res.Kind == DateTimeKind.Utc);
}
}
Результат выполнения кода:
3
True
Пример
Давайте проверим, что DateOnly
осталась прежней:
using System;
class Program
{
static void Main()
{
var date = new DateOnly(2020, 1, 2);
date.ToDateTime(new TimeOnly(3, 4, 5));
Console.WriteLine(date.Day);
}
}
Результат выполнения кода:
2
Смотрите также
-
FromDateTime,
обратное разделение -
TimeOnly.FromDateTime,
время изDateTime -
DateTime.AddDays,
сдвиг собранного момента -
DateTimeOffset,
момент с поясом