C# DateOnly
最后修改于 2023 年 7 月 5 日
在本文中,我们将展示如何在 C# 中使用 DateOnly 类型。
DateOnly 表示日期,其值范围为公元 0001 年 1 月 1 日到公元 9999 年 12 月 31 日(公历)。 类似地,TimeOnly 表示一天中的时间。
DateOnly 是位于 System 命名空间中的一个结构体。 它在 .NET 6 中引入。
C# DateOnly 简单示例
以下是一个 DateOnly 的简单示例。
using System.Globalization; DateOnly d1 = new DateOnly(2022, 10, 12); Console.WriteLine(d1); DateOnly d2 = new DateOnly(2022, 10, 12, new GregorianCalendar()); Console.WriteLine(d2); DateOnly d3 = new DateOnly(2022, 10, 12, new JulianCalendar()); Console.WriteLine(d3);
该程序创建了三个 DateOnly 实例。
DateOnly d1 = new DateOnly(2022, 10, 12);
在第一种情况下,构造函数接受年、月和日参数。
DateOnly d2 = new DateOnly(2022, 10, 12, new GregorianCalendar());
在第二种情况下,构造函数还接受日历作为参数。
$ dotner run 10/12/2022 10/12/2022 10/25/2022
C# DateOnly 最小值和最大值
DateOnly.MaxValue 返回可以创建的最新日期。 DateOnly.MinValue 获取可以创建的最早日期。
DateOnly maxVal = DateOnly.MaxValue; DateOnly minVal = DateOnly.MinValue; Console.WriteLine(minVal); Console.WriteLine(maxVal);
该程序打印 DateOnly 类型可以表示的最小值和最大值。
$ dotnet run 1/1/0001 12/31/9999
C# 比较 DateOnly
我们可以使用关系运算符比较 DateTime 实例。
DateOnly d1 = new DateOnly(2022, 10, 12);
DateOnly d2 = new DateOnly(2022, 11, 12);
if (d1 < d2) {
Console.WriteLine($"{d1} is before {d2}");
} else {
Console.WriteLine($"{d1} is after {d2}");
}
该程序使用 < 运算符比较两个 DateTime 类型。
$ dotnet run 10/12/2022 is before 11/12/2022
C# DateOnly.FromDateTime
DateOnly.FromDateTime 方法从 DateTime 对象创建一个 DateOnly 实例。
DateTime now = DateTime.Now; Console.WriteLine(now); DateOnly d = DateOnly.FromDateTime(now); Console.WriteLine(d); TimeOnly t = TimeOnly.FromDateTime(now); Console.WriteLine(t);
该程序计算当前的日期时间,并从中提取日期和时间。
DateOnly d = DateOnly.FromDateTime(now); Console.WriteLine(d);
我们使用 DateOnly.FromDateTime 检索日期部分。
TimeOnly t = TimeOnly.FromDateTime(now);
我们使用 TimeOnly.FromDateTime 检索时间部分。
$ dotnet run 10/13/2022 5:31:17 PM 10/13/2022 5:31 PM
C# DateOnly 短日期和长日期
默认的 DateOnly 格式是短日期字符串。 使用 ToLongDateString 方法,我们可以获得长日期字符串表示形式。
DateOnly d = new DateOnly(2022, 10, 12); Console.WriteLine(d); Console.WriteLine(d.ToShortDateString()); Console.WriteLine(d.ToLongDateString());
该程序以短日期和长日期格式打印 DateOnly。
$ dotnet run 10/12/2022 10/12/2022 Wednesday, October 12, 2022
C# DateOnly 添加年、月和日
AddYears、AddMonths 和 AddDays 方法将年、月和日添加到 DateTime 实例。
DateOnly d = new DateOnly(2022, 10, 10); var res1 = d.AddYears(2).AddMonths(11).AddDays(3); Console.WriteLine(res1); var res2 = d.AddYears(-2).AddMonths(-11).AddDays(-3); Console.WriteLine(res2);
在该程序中,我们使用了这三个方法。
$ dotnet run 9/13/2025 11/7/2019
C# DateTime TryParse
TryParse 方法将字符串转换为 DateTime。
using System.Globalization;
if (DateOnly.TryParse("10/9/2022", new CultureInfo("en-US"),
DateTimeStyles.None, out var res))
{
Console.WriteLine(res.ToLongDateString());
}
if (DateOnly.TryParse("10/9/2022", new CultureInfo("sk-SK"),
DateTimeStyles.None, out var res2))
{
Console.WriteLine(res2.ToLongDateString());
}
10/9/2022 日期格式在美国和斯洛伐克文化中有不同的含义。
$ dotnet run Sunday, October 9, 2022 Saturday, September 10, 2022
来源
在本文中,我们展示了如何在 C# 中使用 DateOnly 类型。
作者
列出所有 C# 教程。