创建 DateTimes
Now、Today 和特定日期。
创建 DateTimes 是 CoddyKit 上的免费 C# Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 C# Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 C# Academy 课程共包含 4 节课。
认识 DateTime
在 C# 中,DateTime 结构体表示时间中的一个时刻,包括日期和当天的时间。
它位于 System 命名空间中,因此每个程序都可以使用。您可以将它用于生日、时间戳、截止日期等场景。
DateTime 值包含年、月、日、小时、分钟、秒,甚至还包含秒的小数部分。
DateTime.Now
获取当前日期和时间的最简单方式是 DateTime.Now。它读取计算机的本地时钟。
每次调用它时,您都会获得当前时刻的新快照。由于结果取决于运行时刻,因此每次输出的值都会变化。
using System;
class Program
{
static void Main()
{
DateTime now = DateTime.Now;
Console.WriteLine(now);
}
}今天的日期
如果您只关心日期而不关心时间,请使用 DateTime.Today。它返回当天午夜(00:00:00)的时间值。
在比较日期时这很方便,因为时间部分会被设为零。
using System;
class Program
{
static void Main()
{
DateTime today = DateTime.Today;
Console.WriteLine(today.Year);
}
}UTC 时间
世界各地的计算机共用 UTC(协调世界时)。使用 DateTime.UtcNow 可获取 UTC 中的当前时间,不受任何本地时区影响。
对于服务器,以及存储供多个地区读取的时间戳,UTC 是安全的选择。
using System;
class Program
{
static void Main()
{
DateTime utc = DateTime.UtcNow;
Console.WriteLine(utc.Kind);
}
}构建特定日期
要创建一个确切的日期,请使用构造函数 new DateTime(year, month, day)。时间部分默认为午夜。
这非常适合表示节日或发布日等固定日期。由于该值是固定的,输出完全可预测。
using System;
class Program
{
static void Main()
{
DateTime launch = new DateTime(2024, 1, 15);
Console.WriteLine(launch.ToString("yyyy-MM-dd"));
}
}添加当天的时间
较长的构造函数允许您设置小时、分钟和秒:new DateTime(year, month, day, hour, minute, second)。
小时使用 24 小时制,因此 14 表示下午 2 点。这样您就可以获得精确到秒的完整时间戳。
using System;
class Program
{
static void Main()
{
DateTime meeting = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(meeting);
}
}读取各个组成部分
获得 DateTime 后,您可以通过属性读取各个组成部分:Year、Month、Day、Hour、Minute 和 Second。
这些属性返回普通整数,因此很容易输出或比较。
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(d.Month);
Console.WriteLine(d.Hour);
}
}星期几
DayOfWeek 属性会告诉您某个日期是星期几。它返回 DayOfWeek 枚举中的一个值,例如 Monday 或 Saturday。
此外还有 DayOfYear,它是一个介于 1 和 366 之间的整数。
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 1, 1);
Console.WriteLine(d.DayOfWeek);
}
}最小值和最大值
DateTime 有两个特殊常量。DateTime.MinValue 是第 1 年 1 月 1 日,DateTime.MaxValue 是第 9999 年 12 月 31 日。
当尚未设置实际日期时,它们可用作默认值或哨兵值。
using System;
class Program
{
static void Main()
{
Console.WriteLine(DateTime.MinValue);
Console.WriteLine(DateTime.MaxValue.Year);
}
}解析日期字符串
用户或文件提供的文本通常包含日期。DateTime.Parse 会将字符串转换为 DateTime。
如果文本不是有效日期,Parse 会引发错误。为了更安全地处理这种情况,您可以使用 DateTime.TryParse;它会返回 true 或 false,而不是使程序崩溃。
using System;
class Program
{
static void Main()
{
DateTime d = DateTime.Parse("2024-07-04");
Console.WriteLine(d.Year);
}
}使用 TryParse 安全解析
DateTime.TryParse 可以避免异常。它接收文本和一个 out 变量,并在成功时返回 true。
对于不确定的输入(例如用户输入的值),建议使用这种处理方式。
using System;
class Program
{
static void Main()
{
bool ok = DateTime.TryParse("not a date", out DateTime result);
Console.WriteLine(ok);
}
}快速检查
您只想获取当前日期,不包含时间部分(午夜)。应该使用哪个调用?
回顾
您已经学会了如何创建 DateTime 值。使用 DateTime.Now 获取本地当前时刻,使用 DateTime.Today 获取今天午夜的时间,使用 DateTime.UtcNow 获取世界时间。
使用 new DateTime(...) 构建固定日期,通过 Year、Month 和 DayOfWeek 读取各个组成部分,并使用 Parse 或更安全的 TryParse 转换文本。
常见问题解答
「创建 DateTimes」课时是免费的吗?
是的 — 「创建 DateTimes」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 C# Academy 课程的其余内容,请升级到 CoddyKit PRO。 C# Academy 课程共包含 4 节课。
「创建 DateTimes」这节课中我会学到什么?
Now、Today 和特定日期。 你通过在浏览器中直接运行的动手代码来练习 C# Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 C# Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 C# Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「创建 DateTimes」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 C# Academy 课中编写并运行代码吗?
能。每节 C# Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 创建 DateTimes
- 格式化日期
- TimeSpan 与持续时间
- 日期运算