在C#中DateTime是一个包含日期、时间的类型,此类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换为多种字符串格式。
DateTime调用ToString()传入的参数可分为制式和自定义两种:
1) 制式:系统自带的,转入特定的单个字符就可转换为系统已设定好的格式。
2) 自定义:自由组合日期代码(y、M、d、h、m、s、f)来展示丰富的日期格式。
2. 制式类型
说明:转入特定的单个字符就可转换为系统已设定好的格式。
2.1 格式来源
在Windows系统中的区域和语言(位置:控制面板 → 区域和语言)选项中可设置日期和时间的格式。
可设置的分类有:短日期、长日期、短时间、长时间等。
调用ToString()进行转换时,许多转换方式都是通过上面的4个分类进行组合。
2.2 符号对照表
2.2.1 环境
.net版本:4.0
系统版本:Win7
格式信息:
2.2.2 对照表
符号 |
语法 |
示例(2016-05-09 13:09:55:2350) |
格式说明 |
y |
DateTime.Now.ToString() |
2016/5/9 13:09:55 |
短日期 长时间 |
d |
DateTime.Now.ToString("d") |
2016/5/9 |
短日期 |
D |
DateTime.Now.ToString("D") |
2016年5月9日 |
长日期 |
f |
DateTime.Now.ToString("f") |
2016年5月9日 13:09 |
长日期 短时间 |
F |
DateTime.Now.ToString("F") |
2016年5月9日 13:09:55 |
长日期 长时间 |
g |
DateTime.Now.ToString("g") |
2016/5/9 13:09 |
短日期 短时间 |
G |
DateTime.Now.ToString("G") |
2016/5/9 13:09:55 |
短日期 长时间 |
t |
DateTime.Now.ToString("t") |
13:09 |
短时间 |
T |
DateTime.Now.ToString("T") |
13:09:55 |
长时间 |
u |
DateTime.Now.ToString("u") |
2016-05-09 13:09:55Z |
|
U |
DateTime.Now.ToString("U") |
2016年5月9日 5:09:55 |
本初子午线的长日期和长时间 |
m |
DateTime.Now.ToString("m") |
5月9日 |
|
M |
DateTime.Now.ToString("M") |
5月9日 |
|
r |
DateTime.Now.ToString("r") |
Mon, 09 May 2016 13:09:55 GMT |
|
R |
DateTime.Now.ToString("R") |
Mon, 09 May 2016 13:09:55 GMT |
|
y |
DateTime.Now.ToString("y") |
2016年5月 |
|
Y |
DateTime.Now.ToString("Y") |
2016年5月 |
|
o |
DateTime.Now.ToString("o") |
2016-05-09T13:09:55.2350000 |
|
O |
DateTime.Now.ToString("O") |
2016-05-09T13:09:55.2350000 |
|
s |
DateTime.Now.ToString("s") |
2016-05-09T13:09:55 |
|
2.3 示例图
2.4 win2003版本
在Win2003默认中的无字符、d、g、G格式中会用'-'符号替代'/'符号(短日期格式为:yyyy-m-d)。
3. 自定义格式类型
开发人员可通过英文字符(y、M、d、h、m、s、f) 分别代替(年、月、日、时、分、秒、毫秒)来自由组合日期时间格式。
3.1 符号对照表
.net版本:4.0
系统版本:Win7
符号 |
说明
|
语法 |
示例(2016-05-09 13:09:55:2350) |
yy |
年份后两位 |
DateTime.Now.ToString("yy") |
DateTime.Now.ToString("yy"); // => 16 |
yyyy |
4位年份 |
DateTime.Now.ToString("yyyy") |
DateTime.Now.ToString("yyyy"); // => 2016 |
MM |
两位月份;单数月份前面用0填充 |
DateTime.Now.ToString("MM") |
DateTime.Now.ToString("MM"); // => 05 |
dd |
日数 |
DateTime.Now.ToString("dd") |
DateTime.Now.ToString("dd"); // => 09 |
ddd |
周几 |
DateTime.Now.ToString("ddd") |
DateTime.Now.ToString("ddd"); // => 周一 |
dddd |
星期几 |
DateTime.Now.ToString("dddd") |
DateTime.Now.ToString("dddd"); // => 星期一 |
hh |
12小时制的小时数 |
DateTime.Now.ToString("hh") |
DateTime.Now.ToString("hh"); // => 01 |
HH |
24小时制的小时数 |
DateTime.Now.ToString("HH") |
DateTime.Now.ToString("HH"); // => 13 |
mm |
分钟数 |
DateTime.Now.ToString("mm") |
DateTime.Now.ToString("mm"); // => 09 |
ss |
秒数 |
DateTime.Now.ToString("ss") |
DateTime.Now.ToString("ss"); // => 55 |
ff |
毫秒数前2位 |
DateTime.Now.ToString("ff") |
DateTime.Now.ToString("ff"); // => 23 |
fff |
毫秒数前3位 |
DateTime.Now.ToString("fff") |
DateTime.Now.ToString("fff"); // => 235 |
ffff |
毫秒数前4位 |
DateTime.Now.ToString("ffff") |
DateTime.Now.ToString("ffff"); // => 2350 |
分隔符
|
可使用分隔符来分隔年月日时分秒。
包含的值可为:-、/、:等非关键字符
|
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); // => 2016-05-09 13:09:55:2350
DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff"); // => 2016/05/09 13:09:55:2350
DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff dddd"); // => 2016/05/09 13:09:55:2350 星期一
|
3.2 示例图
|
请发表评论