在 C# 中,DateTime
类型提供了多种方式来格式化日期和时间。你可以使用标准格式字符串、自定义格式字符串或者 ToString
方法来将 DateTime
对象转换为指定格式的字符串。
1. 标准日期和时间格式字符串
C# 中的 DateTime
类型提供了一些标准的格式字符串,这些格式字符串适用于常见的日期和时间输出。
常见的标准格式
d
:短日期格式(MM/dd/yyyy
)D
:长日期格式(dddd, MMMM dd, yyyy
)t
:短时间格式(hh:mm tt
)T
:长时间格式(hh:mm:ss tt
)f
:完整日期时间(dddd, MMMM dd, yyyy hh:mm tt
)F
:完整日期时间(dddd, MMMM dd, yyyy hh:mm:ss tt
)g
:常规日期时间(MM/dd/yyyy hh:mm tt
)G
:常规日期时间(MM/dd/yyyy hh:mm:ss tt
)M
:月份和日期(MMMM dd
)Y
:年份和月份(MMMM yyyy
)
示例
DateTime currentDate = DateTime.Now;
Console.WriteLine(currentDate.ToString("d")); // 短日期格式
Console.WriteLine(currentDate.ToString("D")); // 长日期格式
Console.WriteLine(currentDate.ToString("t")); // 短时间格式
Console.WriteLine(currentDate.ToString("T")); // 长时间格式
Console.WriteLine(currentDate.ToString("f")); // 完整日期时间(短时间)
Console.WriteLine(currentDate.ToString("F")); // 完整日期时间(长时间)
Console.WriteLine(currentDate.ToString("g")); // 常规日期时间(短时间)
Console.WriteLine(currentDate.ToString("G")); // 常规日期时间(长时间)
Console.WriteLine(currentDate.ToString("M")); // 月日格式
Console.WriteLine(currentDate.ToString("Y")); // 年月格式
2. 自定义日期和时间格式字符串
你可以使用自定义格式字符串来精确控制输出的日期时间格式。自定义格式字符串由日期时间字符组成,并可以自由组合。
常用日期时间字符
yyyy
:四位年份(例如,2025)MM
:两位月份(01-12)dd
:两位日期(01-31)hh
:两位小时(01-12)HH
:24小时制小时(00-23)mm
:两位分钟(00-59)ss
:两位秒钟(00-59)tt
:AM/PMfff
:毫秒(000-999)
示例
DateTime currentDate = DateTime.Now;
Console.WriteLine(currentDate.ToString("yyyy-MM-dd")); // 输出格式:2025-07-28
Console.WriteLine(currentDate.ToString("HH:mm:ss")); // 输出格式:14:30:59
Console.WriteLine(currentDate.ToString("yyyy/MM/dd HH:mm")); // 输出格式:2025/07/28 14:30
Console.WriteLine(currentDate.ToString("ddd, dd MMM yyyy")); // 输出格式:Mon, 28 Jul 2025
Console.WriteLine(currentDate.ToString("yyyy-MM-dd hh:mm:ss tt")); // 输出格式:2025-07-28 02:30:59 PM
3. 使用 ToString()
与 CultureInfo
指定区域格式
你还可以通过 CultureInfo
来指定特定的地区格式化。
示例
using System.Globalization;
DateTime currentDate = DateTime.Now;
CultureInfo cultureInfo = new CultureInfo("en-US");
Console.WriteLine(currentDate.ToString("D", cultureInfo)); // 输出:Monday, July 28, 2025 (美国格式)
cultureInfo = new CultureInfo("de-DE");
Console.WriteLine(currentDate.ToString("D", cultureInfo)); // 输出:Montag, 28. Juli 2025 (德国格式)
4. DateTime
格式化示例:展示不同的输出
DateTime dt = new DateTime(2025, 7, 28, 14, 30, 59);
// 常见日期时间格式
Console.WriteLine(dt.ToString("d")); // 07/28/2025
Console.WriteLine(dt.ToString("D")); // Monday, July 28, 2025
Console.WriteLine(dt.ToString("f")); // Monday, July 28, 2025 2:30 PM
Console.WriteLine(dt.ToString("F")); // Monday, July 28, 2025 2:30:59 PM
// 自定义格式
Console.WriteLine(dt.ToString("yyyy-MM-dd")); // 2025-07-28
Console.WriteLine(dt.ToString("HH:mm:ss")); // 14:30:59
Console.WriteLine(dt.ToString("yyyy/MM/dd HH:mm")); // 2025/07/28 14:30
// 使用 24小时制
Console.WriteLine(dt.ToString("HH:mm:ss")); // 14:30:59
// AM/PM 格式
Console.WriteLine(dt.ToString("hh:mm:ss tt")); // 02:30:59 PM
结论
DateTime
类型的格式化方法非常灵活,标准格式字符串适用于常见情况,而自定义格式字符串允许你精确地控制日期和时间的显示格式。此外,结合 CultureInfo
可以根据不同的地区展示不同的格式。掌握这些技巧,你可以方便地处理和显示日期时间信息。
发表回复