1. Classification
The parameters passed in by DateTime calling ToString() can be divided into two types: standard and custom:
1) Format: The system comes with it, and it can be converted into the format set by the system by transferring a specific single character .
2) Customization: Freely combine date codes (y, M, d, h, m, s, f) to display rich date formats.
2. Format type
Explanation : Turning in a specific single character can be converted into a format that has been set by the system.
2.1 Format source
The date and time format can be set in the Regional and Language (Location: Control Panel → Regional and Language) options in Windows .
The categories that can be set are: short date, long date, short time, long time, etc.
When calling ToString() for conversion, many conversion methods are combined through the above 4 categories.
2.2 Symbol comparison table
2.2.1 Environment
.net version : 4.0
System version : Win7
Format information :
2.2.2 Comparison table
symbol | grammar | Example (2016-05-09 13:09:55:2350) | format description |
and | DateTime.Now.ToString() | 2016/5/9 13:09:55 | short date long time |
d | DateTime.Now.ToString("d") | 2016/5/9 | short date |
D | DateTime.Now.ToString("D") | May 9, 2016 | long date |
f | DateTime.Now.ToString("f") | May 9, 2016 13:09 | long date short time |
F | DateTime.Now.ToString("F") | May 9, 2016 13:09:55 | long date long time |
g | DateTime.Now.ToString("g") | 2016/5/9 13:09 | short date short time |
G | DateTime.Now.ToString("G") | 2016/5/9 13:09:55 | short date long time |
t | DateTime.Now.ToString("t") | 13:09 | short time |
T | DateTime.Now.ToString("T") | 13:09:55 | long time |
u | DateTime.Now.ToString("u") | 2016-05-09 13:09:55Z | |
U | DateTime.Now.ToString("U") | May 9, 2016 5:09:55 | Prime Meridian Long Dates and Long Times |
m | DateTime.Now.ToString("m") | May 9th | |
M | DateTime.Now.ToString("M") | May 9th | |
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 | |
and | DateTime.Now.ToString("y") | May 2016 | |
AND | DateTime.Now.ToString("Y") | May 2016 | |
O | DateTime.Now.ToString("o") | 2016-05-09T13:09:55.2350,000 | |
O | DateTime.Now.ToString("O") | 2016-05-09T13:09:55.2350,000 | |
s | DateTime.Now.ToString("s") | 2016-05-09T13:09:55 |
2.3 Example diagram
2.4 win2003 version
In the default no character, d, g, and G formats in Win2003, the ' - ' symbol will be used instead of the ' / ' symbol (the short date format is: yyyy-md).
3. Custom format type
Developers can freely combine date and time formats by replacing (year, month, day, hour, minute, second, millisecond) with English characters (y, M, d, h, m, s, f) respectively.
3.1 Symbol comparison table
.net version : 4.0
System version : Win7
symbol | illustrate |
grammar | Example (2016-05-09 13:09:55:2350) |
yy | last two digits of the year | DateTime.Now.ToString("yy") | DateTime.Now.ToString("yy"); // => 16 |
yyyy | 4-digit year | DateTime.Now.ToString("yyyy") | DateTime.Now.ToString("yyyy"); // => 2016 |
MM | Two-digit month; odd-numbered months are padded with 0s | DateTime.Now.ToString("MM") | DateTime.Now.ToString("MM"); // => 05 |
dd | Days | DateTime.Now.ToString("dd") | DateTime.Now.ToString("dd"); // => 09 |
ddd | which day | DateTime.Now.ToString("ddd") | DateTime.Now.ToString("ddd"); // => 周一 |
dddd | Day of the week | 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 示例图
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 示例图