C# DateTime 日期格式化
在 C# 中 DateTime 是一个包含日期、时间的类型,此类型通过ToString()
转换为字符串时,可根据传入给Tostring()
的参数转换为多种字符串格式。
一、分类
DateTime 调用ToString()
传入的参数可分为制式和自定义两种:
- 制式类型:系统自带的,传入特定的单个字符,就可转换为系统已设定好的格式。
- 自定义类型:自由组合日期代码(y、M、d、h、m、s、f)来展示丰富的日期格式。
二、制式类型
说明:传入特定的单个字符,就可转换为系统已设定好的格式。
1、格式来源
在 Windows 系统中的区域和语言(位置:控制面板 > 区域和语言)选项中可设置日期和时间的格式。
可设置的分类有:短日期、长日期、短时间、长时间等。
调用ToString()
进行转换时,许多转换方式都是通过上面的 4 个分类进行组合。
2、符号对照表
2.1、配置环境
- .NETFramework 版本:4.0
- 操作系统:Windows 10
- 格式信息:
2.2、符号对照表
符号 | 语法 | 示例 | 说明 |
---|---|---|---|
无 | DateTime.Now.ToString() |
2019/1/25 15:55:57 | 短日期 + 长时间 |
d | DateTime.Now.ToString("d") |
2019/1/25 | 短日期 |
D | DateTime.Now.ToString("D") |
2019年1月25日 | 长日期 |
f | DateTime.Now.ToString("f") |
2019年1月25日 15:55 | 长日期 + 短时间 |
F | DateTime.Now.ToString("F") |
2019年1月25日 15:55:57 | 长日期 + 长时间 |
g | DateTime.Now.ToString("g") |
2019/1/25 15:55 | 短日期 + 短时间 |
G | DateTime.Now.ToString("G") |
2019/1/25 15:55:57 | 短日期 + 长时间 |
t | DateTime.Now.ToString("t") |
15:55 | 短时间 |
T | DateTime.Now.ToString("T") |
15:55:57 | 长时间 |
u | DateTime.Now.ToString("u") |
2019-01-25 15:55:57Z | |
U | DateTime.Now.ToString("U") |
2019年1月25日 7: 55:57 | 本初子午线的长日期和长时间 |
m | DateTime.Now.ToString("m") |
1月25日 | |
M | DateTime.Now.ToString("M") |
1月25日 | |
r | DateTime.Now.ToString("r") |
Fri, 25 Jan 2019 15:55:57 GMT | |
R | DateTime.Now.ToString("R") |
Fri, 25 Jan 2019 15:55:57 GMT | |
y | DateTime.Now.ToString("y") |
2019年1月 | |
Y | DateTime.Now.ToString("Y") |
2019年1月 | |
o | DateTime.Now.ToString("o") |
2019-01-25T15:55:57.3290052+08:00 | |
O | DateTime.Now.ToString("O") |
2019-01-25T15:55:57.3290052+08:00 | |
s | DateTime.Now.ToString("s") |
2019-01-25T15:55:57 |
2.3、示例图
Windows 2003 系统中的 无字符、d、g、G 格式中会用“-”符号替代“/”符号(短日期格式为:yyyy-m-d)。
DateTime.Now.ToString() | 2019-1-25 15:55:57
DateTime.Now.ToString("d") | 2019-1-25
DateTime.Now.ToString("g") | 2019-1-25 15:55
DateTime.Now.ToString("G") | 2019-1-25 15:55:57
三、自定义类型
开发人员可通过英文字符(y、M、d、h、m、s、f)分别代替(年、月、日、时、分、秒、毫秒)来自由组合日期时间格式。
3.1、配置环境
- .NETFramework 版本:4.0
- 操作系统:Windows 10
3.2、符号对照表
符号 | 说明 | 语法 | 示例 |
---|---|---|---|
yy | 年份后两位 | DateTime.Now.ToString("yy") |
19 |
yyyy | 4 位年份 | DateTime.Now.ToString("yyyy") |
2019 |
MM | 两位月份;单数月份前面用 0 填充 | DateTime.Now.ToString("MM") |
01 |
dd | 日数 | DateTime.Now.ToString("dd") |
25 |
ddd | 周几 | DateTime.Now.ToString("ddd") |
周五 |
dddd | 星期几 | DateTime.Now.ToString("dddd") |
星期五 |
hh | 12 小时制的小时数 | DateTime.Now.ToString("hh") |
05 |
HH | 24 小时制的小时数 | DateTime.Now.ToString("HH") |
17 |
mm | 分钟数 | DateTime.Now.ToString("mm") |
04 |
ss | 秒数 | DateTime.Now.ToString("ss") |
07 |
ff | 毫秒数前 2 位 | DateTime.Now.ToString("ff") |
67 |
fff | 毫秒数前 3 位 | DateTime.Now.ToString("fff") |
678 |
ffff | 毫秒数前 4 位 | DateTime.Now.ToString("ffff") |
6789 |
可使用分隔符来分隔年月日时分秒毫秒。分隔符可以是 -、/、: 等非关键字符。
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
// 2019-01-25 18:03:57:3894
DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff");
// 2019/01/25 18:03:57:3894
DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff dddd");
// 2019/01/25 18:03:57:3894 星期五
3.3、示例图
四、参考文献
本文并非原创,也非一味照搬,修改了原文部分错误。
原文链接:博客园 - 方木一
(完)