在 dotnet 中,经常使用的时间日期类有 DateTime, TimeSpan, 和 DateTimeOffset。但有时我们只需要获取年、月、日信息,不需要时间信息;或者相反,只需要时间信息,不需要日期信息,用上述类就有点重,也不够方便。
对此,dotnet 6 引入了新的 DateOnly 和 TimeOnly类。
var date1 = new DateOnly(2022, 6, 1); Console.WriteLine(date1); // 输出:2022/6/1 var time1 = new TimeOnly(10, 32); Console.WriteLine(time1); // 输出:10:32
也可以通过 DateTime 生成。
var date2 = DateOnly.FromDateTime(DateTime.Now); var time2 = TimeOnly.FromDateTime(DateTime.Now);
编码建议:只需要日期信息或者时间信息的情况下,一律使用新的 DateOnly 或者 TimeOnly。