格式化日期
自定义格式和标准格式。
格式化日期 是 CoddyKit 上的免费 C# Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 C# Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 C# Academy 课程共包含 4 节课。
为什么要格式化日期
原始 DateTime 会按照计算机的默认区域性输出,这可能不是您想要的格式。
格式化可以让您精确控制日期的显示方式:2024-03-05、05/03/2024 或 Tuesday, March 5。C# 同时提供标准格式字符串和自定义格式字符串。
使用模式调用 ToString
最灵活的工具是使用自定义格式字符串调用 ToString。每个字母代表日期的一个组成部分。
例如,"yyyy-MM-dd" 会生成年-月-日格式,便于排序和阅读。
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine(d.ToString("yyyy-MM-dd"));
}
}年、月、日格式字符
格式字符区分大小写。yyyy 表示四位数年份,MM 表示两位数月份,dd 表示两位数日期。
使用大写 M 表示月份;小写 m 表示分钟。将两者混淆是初学者常见的错误。
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine(d.ToString("dd/MM/yyyy"));
}
}小时、分钟和秒
对于时间部分,HH 表示 24 小时制,mm 表示分钟,ss 表示秒。
小写 hh 使用 12 小时制,并与 tt 搭配表示 AM 或 PM。
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(d.ToString("HH:mm:ss"));
}
}使用 AM/PM 表示 12 小时制
要显示易读的 12 小时时间,请将 hh:mm 与 tt 组合使用。tt 格式说明符会输出 AM 或 PM。
因此,14:30 会变成 02:30 PM,许多读者会觉得这比 24 小时制的值更容易理解。
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(d.ToString("hh:mm tt"));
}
}月份和星期名称
您可以显示名称而不是数字。MMMM 提供完整的月份名称,MMM 提供简写名称。
对于星期几,dddd 表示完整名称,ddd 表示缩写。
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine(d.ToString("dddd, MMMM dd"));
}
}标准格式说明符
除了自定义模式外,C# 还提供简短的标准代码。"d" 表示短日期,"D" 表示长日期,"t" 表示短时间,"T" 表示长时间。
这些格式遵循当前区域性,因此具体显示样式可能因地区而异。
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(d.ToString("D"));
}
}简短格式与完整格式辅助方法
此外还有一些便捷方法。ToShortDateString 和 ToShortTimeString 会生成简短的输出,而 ToLongDateString 会完整写出日期。
这些方法使用方便,但如果需要完全控制格式,建议使用明确的格式字符串。
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine(d.ToShortDateString());
}
}插值中的格式化
在插值字符串中,您可以在冒号后面放置格式。写成 {d:yyyy-MM-dd} 就能在值出现的位置直接设置格式。
构建消息时,这样可以让代码保持简短易读。
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine($"Date: {d:yyyy-MM-dd}");
}
}不受区域性影响的输出
对于需要存储或在系统之间传输的数据,请使用 CultureInfo.InvariantCulture 进行格式化,这样结果就不会受用户区域设置的影响。
这可以避免同一段代码在另一台机器上输出不同结果的问题。
using System;
using System.Globalization;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine(d.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));
}
}往返格式
标准的 "o"(往返)格式会输出 ISO 8601 字符串,保留所有细节,包括秒的小数部分。
当日期稍后必须重新解析且不能损失精度时,这是最安全的选择。
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(d.ToString("o"));
}
}快速检查
您希望在自定义格式字符串中使用两位数的月份。哪个格式说明符是正确的?
回顾
您可以使用 ToString 和 yyyy、MM、dd、HH、mm 等自定义模式来设置日期格式。
"d" 和 "D" 等标准代码会遵循区域性设置,而 InvariantCulture 和 "o" 往返格式可以让不同系统中的输出保持稳定。
常见问题解答
「格式化日期」课时是免费的吗?
是的 — 「格式化日期」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 C# Academy 课程的其余内容,请升级到 CoddyKit PRO。 C# Academy 课程共包含 4 节课。
「格式化日期」这节课中我会学到什么?
自定义格式和标准格式。 你通过在浏览器中直接运行的动手代码来练习 C# Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 C# Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 C# Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「格式化日期」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 C# Academy 课中编写并运行代码吗?
能。每节 C# Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。