在本教程中,我们展示了如何在 C# 中使用日期和时间。
C# DateTime
DateTime
值类型表示日期和时间,其值的范围是 0001 年 1 月 1 日凌晨 00:00:00(午夜)(公元时代)至 Anno Domini(公共时代)至 9999 年 12 月 31 日晚上 11:59:59(公元) 公历。
C# TimeSpan
TimeSpan
表示时间间隔(时间或经过的时间),以天,小时,分钟,秒和几分之一秒的正数或负数测量。 TimeZoneInfo
提供了时区信息和可用于不同时区的工具。
C# 今天的日期
在第一个示例中,我们得到今天的日期。
Program.cs
该示例打印今天的日期。
通过DateTime
的Now
属性,我们可以获取当地时间的当前日期和时间。
使用ToString()
方法,我们格式化日期。 F
说明符创建完整的日期和时间模式。
这是程序的示例输出。
C# DateTime
属性
DateTime
代表时间的瞬间。 它的属性提供日期和时间的各个方面。
Program.cs
该示例检查DateTime
对象的属性。
创建一个DateTime
对象。 DateTime
被设置为该计算机上的当前本地日期和时间。
Date
属性获取DateTime
实例的日期部分。
Day
属性获取每月的某天。 Month
属性返回月份部分,表示为 1 到 12 之间的值。
DayOfYear
属性获取年份,Year
属性获取年份。
TimeOfDay
属性获取DateTime
实例的一天中的时间。
Hour
,Minute
,Second
和Millisecond
是时间分量的一部分。
DayOfWeek
属性获取星期几。
Kind
属性返回一个值,该值指示此DateTime
实例表示的时间是基于本地时间,世界协调时间(UTC)还是都不基于。
C# 加减DateTime
DateTime
具有进行时间算术运算的方法。
Program.cs
该示例介绍了DateTime
对象的六种方法。
AddSeconds()
返回一个新的DateTime
,该值将指定的秒数添加到该实例的值。
AddDays()
为DateTime
增加了几天。 我们可以提供正值或负值。
这是示例的输出。
C# UTC 时间
我们的星球是一个球体; 它绕其轴旋转。 地球向东旋转,因此太阳在不同位置的不同时间升起。 地球大约每 24 小时旋转一次。 因此,世界被划分为 24 个时区。 在每个时区,都有一个不同的本地时间。 夏令时通常会进一步修改此本地时间。
实际需要一个全球时间。 全球时间可以避免时区和夏令时的混淆。 UTC(世界标准时间)被选为主要时间标准。 UTC 用于航空,天气预报,飞行计划,空中交通管制通关和地图。 与当地时间不同,UTC 不会随季节变化而变化。
Program.cs
该示例打印当前的 UTC 时间和本地时间。
通过DateTime
的UtcNow
属性,我们获得了 UTC 时间。
我们格式化时间。
对于 CET 时区,时差为一小时。
C# 本地化日期
DateTime
允许我们显示特定区域性的日期和时间。
Program.cs
该示例打印斯洛伐克文化中的当前日期和时间。
为了正确输出带重音的斯洛伐克语字符,我们将控制台输出编码设置为 UTF8。
我们创建了一个斯洛伐克语CultureInfo
,其中包括有关区域性名称,书写系统,使用的日历,字符串的排序顺序以及日期和数字格式的信息。
我们以完整的日期和时间格式模式打印日期和时间。
这是程序的输出。
C# Unix 时间
Unix 时间是自 Unix 时代以来的秒数。 Unix 时间广泛用于计算。 没有方法可以在 C# 中获得 Unix 时间。 我们需要创建自己的计算。
Program.cs
该示例显示 Unix 时间。
我们使用ToUnixTimeSeconds()
方法获得 Unix 时间。
此刻,自 Unix 时代以来已经过了1572952370
秒。
C# TimeSpan
TimeSpan
结构表示时间间隔。
subtract_times.cs
在示例中,我们减去两个时间值。
我们定义了两个表示为字符串的时间值。
Subtract()
方法用于减去两个时间值。 Parse()
方法将时间间隔的字符串表示形式转换为TimeSpan
对象。
区别是 13 小时 30 分钟。
在下面的示例中,我们减去两个日期值。
Program.cs
在示例中,我们计算了自 Borodino 战斗以来经过的天数。
我们定义了两个DateTime
对象:一个用于今天,另一个用于在 Borodino 战斗的日期。
通过减去这两个对象,我们得到一个TimeSpan
对象。
TotalDays
属性具有经过时间的天数。
自 Borodino 战役以来,于 2019 年 11 月 5 日过去了 75664 天。
C# 格式化时间
日期和时间格式字符串定义了由格式化操作产生的DateTime
或DateTimeOffset
值的文本表示形式。 格式说明符有两种类型:标准和自定义。 自定义日期和时间格式字符串由两个或多个字符组成。
Program.cs
该示例使用某些标准格式说明符打印今天的日期。
d
说明符创建一个短日期模式。
D
说明符创建一个长日期模式。
F
说明符创建完整的日期和时间模式。
M
说明符创建月和日模式。
o
说明符创建往返日期和时间模式。 在此模式中,日期和时间部分由T
字符分隔,并且时区偏差附加在字符串的末尾。
R
说明符创建一个 RFC1123 日期和时间模式。
t
说明符创建一个短时间模式。
t
说明符创建长时间模式。
Y
说明符创建年和月模式。
自定义格式说明符使我们可以创建自定义的日期和时间格式模式。
Program.cs
该示例使用自定义说明符打印日期和时间格式。
ddd
指示符是星期几的缩写名称,MMM
是该月的缩写名,d
是该月的某天,从 1 到 31。在自定义说明符的上下文中 ,它前面必须带有%
字符。 最后,yyyy
是四位数的年份。
hh
说明符是小时,使用从 01 到 12 的 12 小时制时钟,mm
是分钟,从 00 到 59,ss
是秒,从 00 到 59,并且tt
是 AM / PM 指示符。
C# 解析时间
DateTime's
Parse()
方法将日期和时间的字符串表示形式转换为其等效的DateTime
。
Program.cs
程序将日期解析为字符串。
这是一个以字符串表示的日期。
使用Parse()
方法,我们将其解析为DateTime
对象。
日期以中端顺序打印到控制台。
C# 时区
时区是一个使用相同标准时间的区域。 世界上有 24 个时区。
偏差是 UTC 时间与本地时间之间的时差。
TimeZoneInfo
是用于使用 C# 中的时区的类。
Program.cs
该程序将打印当前时区和偏差。
使用Local
属性,我们可以获得本地时区。
StandardName
给出时区的标准名称,DaylightName
给出夏令时的名称。
BaseUtcOffset
属性产生偏差。
在位于布拉迪斯拉发的系统上,我们获得了这些值。
GetSystemTimeZones()
方法返回所有时区的排序集合,有关这些时区的信息在本地系统上可用。
Program.cs
该示例在系统上打印可用时区的 ID。
这是程序的部分输出。
还可以使用某些格式说明符从DateTime
值中检索时区信息。
Program.cs
该示例使用格式说明符来表示本地时区的偏差。
这是反对。
C# 闰年
闰年是包含另一天的年份。 日历中额外一天的原因是天文日历年与日历年之间的差异。
Program.cs
我们有很多年。 我们检查所有年份是否为 leap 年。 IsLeapYear()
功能确定年份是否为 a 年。
这是我们检查的年份。 年份必须在公历中。
使用 for 循环,我们遍历数组。 我们使用IsLeapYear()
功能检查年份是否为 a 年。