C#实现日期时间的格式化输出的示例详解

来自:网络
时间:2023-06-25
阅读:
目录

DateTime被放在System命名空间下,在顶级语句中不必using可直接使。

单个字母格式化

DateTime最常用的属性是Now,表示当前的时刻,其数据类型也是DateTime。但一般来说,Now包含的内容有些多,比较合适的用法是通过一些关键字进行格式化输出,这些关键字可以是单个的字母,如下例所示

string[] formatLst = new string[] { "d", "D", "f", "F", "g", "G", "t", "T", "u", "U", "m", "M", "r", "R", "y", "Y", "o", "O", "s" };
foreach (var item in formatLst)
{
    var now = DateTime.Now;
    Console.WriteLine($"{item}|{now.ToString(item)}");
}
标志输出
2023/3/3 15:41:59
d2023/3/3
D2023年3月3日
f2023年3月3日 15:41
F2023年3月3日 15:41:00
g2023/3/3 15:41
G2023/3/3 15:41:00
t15:41
T15:41:00
u2023-03-03 15:41:00Z
U2023年3月3日 7:41:00
m3月3日
M3月3日
rFri, 03 Mar 2023 15:41:00 GMT
RFri, 03 Mar 2023 15:41:00 GMT
y2023年3月
Y2023年3月
o2023-03-03T15:41:00.4768044+08:00
O2023-03-03T15:41:00.4769105+08:00
s2023-03-03T15:41:00

其中,U表示本初子午线的长日期和长时间。

自定义格式化

ToString也重载了更加复杂的格式化方法

string[] fmtLst = new string[] { "yy", "yyyy", "MM", "dd", "ddd", "dddd", "hh", "HH", "mm", "ss", "ff", "fff", "ffff"};
foreach (var item in fmtLst)
{
    var now = DateTime.Now;
    Console.WriteLine($"{item}|{now.ToString(item)}");
}
格式输出说明
yy23年份后两位
yyyy20234位年份
MM03两位月份
dd03日数
ddd周五
dddd星期五
hh0312小时制的小时数
HH1524小时制的小时数
mm45分钟数
ss51秒数
ff15毫秒数前2位
fff156毫秒数前3位
ffff1567毫秒数前4位

上面这些针对单个年、月、日、时、分、秒的关键字可以通过插入其他符号的方式自由组合,例如

var dt1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffff");
var dt2 = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
var dt3 = DateTime.Now.ToString("yyyy年MM月dd日 dddd");
Console.WriteLine(dt1);
Console.WriteLine(dt2);
Console.WriteLine(dt3);

命令行输出为

2023-03-03 15:50:20.8885
2023/03/03 15:50:20
2023年03月03日 星期五

返回顶部
顶部