C#中的日期时间

C#中的日期时间

要在 .NET 中处理日期和时间,我们需要使用 DateTime 结构。它表示从 0001 年 1 月 1 日 00:00:00 到 9999 年 12 月 31 日 23:59:59 的日期和时间。

您还可以使用构造函数来创建新的 DateTime 对象。空构造函数创建一个初始日期:

1 日期时间日期时间 = 新 约会时间();

2 Console.WriteLine(日期时间); // 01.01.0001

也就是说,我们会得到最小的可能值,也可以通过以下方式获得:

1 Console.WriteLine(DateTime.MinValue);

要设置特定日期,您必须使用接受参数的构造函数之一:

1 日期时间日期 1 = 新 日期时间(2022, 08, 28); // 年月日

2 Console.WriteLine(date1); // 28.08.2022

设置时间:

1 日期时间日期 1 = 新 日期时间(2022、8、28、18、30、25); // 年-月-日-时-分-秒

2 Console.WriteLine(date1); // 28.08.2022 15:32:49

如果要获取当前时间和日期,可以使用多个 DateTime 属性:

1 Console.WriteLine(日期时间.现在);

2 Console.WriteLine(DateTime.UtcNow);

3 Console.WriteLine(DateTime.Today);

控制台输出:

 28.08.2022 11:43:33  
 28.08.2022 8:43:33  
 28.08.2022 0:00:00

DateTime.Now 属性采用计算机的当前日期和时间,DateTime.UtcNow — 相对于格林威治标准时间 (GMT) 的日期和时间,以及 DateTime.Today — 仅当前日期。

使用日期时,请记住,默认情况下,公历用于表示日期。但是如果我们想得到 1582 年 10 月 5 日的星期几,会发生什么:

1 日期时间 someDate = 新 日期时间(1582, 10, 5);

2 Console.WriteLine(someDate.DayOfWeek)

控制台将突出显示星期二的值。然而,从历史上可以知道,从儒略历到公历的第一次过渡发生在 1582 年 10 月。然后,在 10 月 4 日(星期四)(根据儒略历)之后立即切换到 10 月 15 日(星期五) (按公历)。所以,事实上,10天被删除了。也就是说,10 月 4 日之后是 10 月 15 日。

在大多数情况下,这一事实不太可能影响计算,但在处理非常旧的日期时,应考虑这一方面。

日期时间操作

DateTime 结构的主要操作与日期的加减有关。例如,您需要在某个日期上增加或减少几天。

有多种方法用于添加日期:

• Add(TimeSpan value):将 TimeSpan 值添加到日期。

• AddDays(double value):在当前日期上增加几天

• AddHours(double value):将几个小时添加到当前日期

•AddMinutes(double value):在当前日期增加几分钟

• AddMonths(int value):将几个月添加到当前日期

• AddYears(int value):将一些年份添加到当前日期

例如,将 3 小时添加到某个日期:

1 日期时间日期 1 = 新 日期时间(2022、8、28、18、30、25); // 28.08.2022 18:30:25

2 Console.WriteLine(date1.AddHours(3)); // 28.08.2022 21:30:25

Subtract(DateTime 日期) 方法 用于减去日期:

1 日期时间日期 1 = 新 日期时间(2022、8、28、18、30、25); // 28.08.2022 18:30:25

2 日期时间 date2 = 新 日期时间(2022、8、28、15、30、25); // 28.08.2022 15:30:25

3 Console.WriteLine(date1.Subtract(date2)); // 03:00:00

这里的日期相差三个小时,所以结果是“03:00:00”。

Substract 方法没有单独减去天数、小时数等的选项。但它不需要,因为我们可以将负值传递给 AddDays() 方法和其他 add 方法:

1 // 减去三个小时

2 日期时间日期 1 = 新 日期时间(2022、8、28、18、30、25); // 28.08.2022 18:30:25

3 Console.WriteLine(date1.AddHours(-3)); // 28.08.2022 15:30:25

除了加减运算之外,还有很多日期格式化方法:

1 日期时间日期 1 = 新 日期时间(2022、8、28、18、30、25);

2 Console.WriteLine(date1.ToLocalTime()); // 28.08.2022 21:30:25

3 Console.WriteLine(date1.ToUniversalTime()); // 28.08.2022 15:30:25

4 Console.WriteLine(date1.ToLongDateString()); // 2022 年 8 月 28 日

5 Console.WriteLine(date1.ToShortDateString()); // 28.08.2022

6 Console.WriteLine(date1.ToLongTimeString()); // 18:30:25

7 Console.WriteLine(date1.ToShortTimeString()); // 18:30

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/1556/54482917

posted @   哈哈哈来了啊啊啊  阅读(1410)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示