C# DateTime date formatting

 

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 示例图

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324841097&siteId=291194637