Asp.net中的日期处理函数
//2007年4月24日
this.TextBox6.Text = System.DateTime.Now.ToString("D");
//2007-4-24
this.TextBox7.Text = System.DateTime.Now.ToString("d");
//2007年4月24日 16:30:15
this.TextBox8.Text = System.DateTime.Now.ToString("F");
//2007年4月24日 16:30
this.TextBox9.Text = System.DateTime.Now.ToString("f");
//2007-4-24 16:30:15
this.TextBox10.Text = System.DateTime.Now.ToString("G");
//2007-4-24 16:30
this.TextBox11.Text = System.DateTime.Now.ToString("g");
//16:30:15
this.TextBox12.Text = System.DateTime.Now.ToString("T");
//16:30
this.TextBox13.Text = System.DateTime.Now.ToString("t");
//2007年4月24日 8:30:15
this.TextBox14.Text = System.DateTime.Now.ToString("U");
//2007-04-24 16:30:15Z
this.TextBox15.Text = System.DateTime.Now.ToString("u");
//4月24日
this.TextBox16.Text = System.DateTime.Now.ToString("m");
this.TextBox16.Text = System.DateTime.Now.ToString("M");
//Tue, 24 Apr 2007 16:30:15 GMT
this.TextBox17.Text = System.DateTime.Now.ToString("r");
this.TextBox17.Text = System.DateTime.Now.ToString("R");
//2007年4月
this.TextBox19.Text = System.DateTime.Now.ToString("y");
this.TextBox19.Text = System.DateTime.Now.ToString("Y");
//2007-04-24T15:52:19.1562500+08:00
this.TextBox20.Text = System.DateTime.Now.ToString("o");
this.TextBox20.Text = System.DateTime.Now.ToString("O");
//2007-04-24T16:30:15
this.TextBox18.Text = System.DateTime.Now.ToString("s");
//2007-04-24 15:52:19
this.TextBox21.Text = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
//2007年04月24 15时56分48秒
this.TextBox22.Text = System.DateTime.Now.ToString("yyyy年MM月dd HH时mm分ss秒");
//星期二, 四月 24 2007
this.TextBox1.Text = System.DateTime.Now.ToString("dddd, MMMM dd yyyy");
//二, 四月 24 '07
this.TextBox2.Text = System.DateTime.Now.ToString("ddd, MMM d \"'\"yy");
//星期二, 四月 24
this.TextBox3.Text = System.DateTime.Now.ToString("dddd, MMMM dd");
//4-07
this.TextBox4.Text = System.DateTime.Now.ToString("M/yy");
//24-04-07
this.TextBox5.Text = System.DateTime.Now.ToString("dd-MM-yy");
Label1.Text = dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25
Label2.Text = dt.GetDateTimeFormats('t')[0].ToString();//14:06
Label3.Text = dt.GetDateTimeFormats('y')[0].ToString();//2005年11月
Label4.Text = dt.GetDateTimeFormats('D')[0].ToString();//2005年11月5日
Label5.Text = dt.GetDateTimeFormats('D')[1].ToString();//2005 11 05
Label6.Text = dt.GetDateTimeFormats('D')[2].ToString();//星期六 2005 11 05
Label7.Text = dt.GetDateTimeFormats('D')[3].ToString();//星期六 2005年11月5日
Label8.Text = dt.GetDateTimeFormats('M')[0].ToString();//11月5日
Label9.Text = dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5日 14:06
Label10.Text = dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 14:06
Label11.Text = dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT
字符型转换 转为字符串
12345.ToString("n"); //生成 12,345.00
12345.ToString("C"); //生成 ¥12,345.00
12345.ToString("e"); //生成 1.234500e+004
12345.ToString("f4"); //生成 12345.0000
12345.ToString("x"); //生成 3039 (16进制)
12345.ToString("p"); //生成 1,234,500
标准数字格式字符串的定义如下:
格式说明符 名称 说明
C 或 c
货币
数字转换为表示货币金额的字符串。转换由用于格式化数字的 NumberFormatInfo 对象的货币格式信息控制。精度说明符指示所需的小数位数。如果省略精度说明符,则使用 NumberFormatInfo 给定的默认货币精度。
D 或 d
十进制数
只有整型才支持此格式。数字转换为十进制数字 (0-9) 的字符串,如果数字为负,则前面加负号。精度说明符指示结果字符串中所需的最少数字个数。如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。
E 或 e
科学计数法(指数)
数字转换为“-d.ddd…E+ddd”或“-d.ddd…e+ddd”形式的字符串,其中每个“d”表示一个数字 (0-9)。如果该数字为负,则该字符串以减号开头。小数点前总有一个数字。精度说明符指示小数点后所需的位数。如果省略精度说明符,则使用默认值,即小数点后六位数字。格式说明符的大小写指示在指数前加前缀“E”还是“e”。指数总是由正号或负号以及最少三位数字组成。如果需要,用零填充指数以满足最少三位数字的要求。
F 或 f
固定点
数字转换为“-ddd.ddd…”形式的字符串,其中每个“d”表示一个数字 (0-9)。如果该数字为负,则该字符串以减号开头。精度说明符指示所需的小数位数。如果忽略精度说明符,则使用 NumberFormatInfo 给定的默认数值精度。
G 或 g
常规
根据数字类型以及是否存在精度说明符,数字会转换为固定点或科学记数法的最紧凑形式。如果精度说明符被省略或为零,则数字的类型决定默认精度,如下表所示。
Byte 或 SByte:3
Int16 或 UInt16:5
Int32 或 UInt32:10
Int64 或 UInt64:19
Single:7
Double:15
Decimal:29
如果用科学记数法表示数字时指数大于 -5 而且小于精度说明符,则使用固定点表示法;否则使用科学记数法。如果要求有小数点,并且忽略尾部零,则结果包含小数点。如果精度说明符存在,并且结果的有效数字位数超过指定精度,则通过舍入删除多余的尾部数字。使用科学记数法时,如果格式说明符是“G”,结果的指数带前缀“E”;如果格式说明符是“g”,结果的指数带前缀“e”。
上述规则有一个例外:如果数字是 Decimal 而且省略精度说明符时。在这种情况下总使用固定点表示法并保留尾部零。
N 或 n
数字
数字转换为“-d,ddd,ddd.ddd…”形式的字符串,其中每个“d”表示一个数字 (0-9)。如果该数字为负,则该字符串以减号开头。小数点左边每三个数字之间插入一个千位分隔符。精度说明符指示所需的小数位数。如果忽略精度说明符,则使用 NumberFormatInfo 给定的默认数值精度。
P 或 p
百分比
数字转换为由 NumberFormatInfo.PercentNegativePattern 属性或 NumberFormatInfo.PercentPositivePattern 属性定义的、表示百分比的字符串。如果数字为负,则产生的字符串由 PercentNegativePattern 定义并以负号开头。已转换的数字乘以 100 以表示为百分比。精度说明符指示所需的小数位数。如果省略精度说明符,则使用 NumberFormatInfo 给定的默认数值精度。
R 或 r
往返过程
往返过程说明符保证转换为字符串的数值再次被分析为相同的数值。使用此说明符格式化数值时,首先使用常规格式对其进行测试:Double 使用 15 位精度,Single 使用 7 位精度。如果此值被成功地分析回相同的数值,则使用常规格式说明符对其进行格式化。但是,如果此值未被成功地分析为相同数值,则它这样格式化:Double 使用 17 位精度,Single 使用 9 位精度。虽然精度说明符可以追加到往返过程格式说明符,但它将被忽略。使用此说明符时,往返过程优先于精度。此格式仅受浮点型支持。
X 或 x
十六进制数
数字转换为十六进制数字的字符串。格式说明符的大小写指示对大于 9 的十六进制数字使用大写字符还是小写字符。例如,使用“X”产生“ABCDEF”,使用“x”产生“abcdef”。精度说明符指示结果字符串中所需的最少数字个数。如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。只有整型才支持此格式。
在msdn中搜索“标准数字格式字符串”可得到
3、使用System.Math.Round函数可以指定小数位数。
###################################################################################
C#时间格式大全时间函数大全
[csharp]view plaincopy
1 有时候我们要对时间进行转换,达到不同的显示效果
2
3 默认格式为:2005-6-6 14:33:34
4
5 如果要换成成200506,06-2005,2005-6-6或更多的该怎么办呢?
6
7
8 我们要用到:
9
10 DateTime.ToString的方法(String, IFormatProvider)
11
12 using System;
13
14 using System.Globalization;
15
16
17 Stringformat="D";
18
19 DateTimedate=DataTime,Now;
20
21 Response.Write(date.ToString(format,DateTimeFormatInfo.InvariantInfo));
22
23 结果输出Thursday, June 16, 2005
24
25
26 参数format格式详细用法:
27
28 格式字符 关联属性/说明
29
30 d ShortDatePattern
31
32 D LongDatePattern
33
34 f 完整日期和时间(长日期和短时间)
35
36 F FullDateTimePattern(长日期和长时间)
37
38 g 常规(短日期和短时间)
39
40 G 常规(短日期和长时间)
41
42 m、M MonthDayPattern
43
44 r、R FC1123Pattern
45
46 s 使用当地时间的 SortableDateTimePattern(基于 ISO 8601)
47
48 t ShortTimePattern
49
50 T LongTimePattern
51
52 u UniversalSortableDateTimePattern 用于显示通用时间的格式
53
54 U 使用通用时间的完整日期和时间(长日期和长时间)
55
56 y、Y YearMonthPattern
57
58
59 下表列出了可被合并以构造自定义模式的模式。
60
61 这些模式是区分大小写的;例如,识别“MM”,但不识别“mm”。
62
63 如果自定义模式包含空白字符或用单引号括起来的字符,
64
65 则输出字符串页也将包含这些字符.
66
67 未定义为格式模式的一部分或未定义为格式字符的字符按其原义复制。
68
69
70 格式模式 说明
71
72 d 月中的某一天。一位数的日期没有前导零。
73
74 dd 月中的某一天。一位数的日期有一个前导零。
75
76 ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。
77
78 dddd 周中某天的完整名称,在 DayNames 中定义。
79
80 M 月份数字。一位数的月份没有前导零。
81
82 MM 月份数字。一位数的月份有一个前导零。
83
84 MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。
85
86 MMMM 月份的完整名称,在 MonthNames 中定义。
87
88 y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。
89
90 yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。
91
92 yyyy 包括纪元的四位数的年份。
93
94 gg 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。
95
96 h 12 小时制的小时。一位数的小时数没有前导零。
97
98 hh 12 小时制的小时。一位数的小时数有前导零。
99
100 H 24 小时制的小时。一位数的小时数没有前导零。
101
102 HH 24 小时制的小时。一位数的小时数有前导零。
103
104 m 分钟。一位数的分钟数没有前导零。
105
106 mm 分钟。一位数的分钟数有一个前导零。
107
108 s 秒。一位数的秒数没有前导零。
109
110 ss 秒。一位数的秒数有一个前导零。
111
112 f 秒的小数精度为一位。其余数字被截断。
113
114 ff 秒的小数精度为两位。其余数字被截断。
115
116 fff 秒的小数精度为三位。其余数字被截断。
117
118 ffff 秒的小数精度为四位。其余数字被截断。
119
120 fffff 秒的小数精度为五位。其余数字被截断。
121
122 ffffff 秒的小数精度为六位。其余数字被截断。
123
124 fffffff 秒的小数精度为七位。其余数字被截断。
125
126 t 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在)。
127
128 tt 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在)。z 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。
129
130 zz 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数有前导零。例如,太平洋标准时间是“-08”。
131
132 zzz 完整时区偏移量(“+”或“-”后面跟有小时和分钟)。一位数的小时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。
133
134 : 在 TimeSeparator 中定义的默认时间分隔符。
135
136 / 在 DateSeparator 中定义的默认日期分隔符。
137
138 % c 其中 c 是格式模式(如果单独使用)。如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符。
139
140 \ c 其中 c 是任意字符。照原义显示字符。若要显示反斜杠字符,请使用“\\”。
141
142
143 只有上面第二个表中列出的格式模式才能用于创建自定义模式;
144
145 在第一个表中列出的标准格式字符不能用于创建自定义模式。
146
147 自定义模式的长度至少为两个字符;
148
149 例如,DateTime.ToString("d") 返回 DateTime 值;
150
151 “d”是标准短日期模式。
152
153 DateTime.ToString("%d") 返回月中的某天;
154
155 “%d”是自定义模式.
156
157 DateTime.ToString("d ") 返回后面跟有一个空白字符的月中的某天;
158
159 “d”是自定义模式。
160
161 比较方便的是,上面的参数可以随意组合,并且不会出错,多试试,肯定会找到你要的时间格式如要得到2005年06月这样格式的时间
162
163 可以这样写: date.ToString("yyyy年MM月", DateTimeFormatInfo.InvariantInfo)如此类推
164
165 DateTime dt= DateTime.Now;
166 Label1.Text= dt.ToString();//2005-11-5 13:21:25
167 Label2.Text= dt.ToFileTime().ToString();//127756416859912816
168 Label3.Text= dt.ToFileTimeUtc().ToString();//127756704859912816
169 Label4.Text= dt.ToLocalTime().ToString();//2005-11-521:21:25
170 Label5.Text= dt.ToLongDateString().ToString();//2005年11月5日
171 Label6.Text= dt.ToLongTimeString().ToString();//13:21:25
172 Label7.Text= dt.ToOADate().ToString();//38661.5565508218
173 Label8.Text= dt.ToShortDateString().ToString();//2005-11-5
174 Label9.Text= dt.ToShortTimeString().ToString();//13:21
175 Label10.Text= dt.ToUniversalTime().ToString();//2005-11-5 5:21:25
176 ?2005-11-513:30:28.4412864
177 Label1.Text= dt.Year.ToString();//2005
178 Label2.Text= dt.Date.ToString();//2005-11-5 0:00:00
179 Label3.Text= dt.DayOfWeek.ToString();//Saturday
180 Label4.Text= dt.DayOfYear.ToString();//309
181 Label5.Text= dt.Hour.ToString();//13
182 Label6.Text= dt.Millisecond.ToString();//441
183 Label7.Text= dt.Minute.ToString();//30
184 Label8.Text= dt.Month.ToString();//11
185 Label9.Text= dt.Second.ToString();//28
186 Label10.Text= dt.Ticks.ToString();//632667942284412864
187 Label11.Text= dt.TimeOfDay.ToString();//13:30:28.4412864
188 Label1.Text= dt.ToString();//2005-11-5 13:47:04
189 Label2.Text= dt.AddYears(1).ToString();//2006-11-513:47:04
190 Label3.Text= dt.AddDays(1.1).ToString();//2005-11-616:11:04
191 Label4.Text= dt.AddHours(1.1).ToString();//2005-11-514:53:04
192 Label5.Text= dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04
193 Label6.Text= dt.AddMonths(1).ToString();//2005-12-513:47:04
194 Label7.Text= dt.AddSeconds(1.1).ToString();//2005-11-513:47:05
195 Label8.Text= dt.AddMinutes(1.1).ToString();//2005-11-513:48:10
196 Label9.Text= dt.AddTicks(1000).ToString();//2005-11-513:47:04
197 Label10.Text= dt.CompareTo(dt).ToString();//0
198 //Label11.Text= dt.Add(?).ToString();//问号为一个时间段
199 Label1.Text= dt.Equals("2005-11-6 16:11:04").ToString();//False
200 Label2.Text= dt.Equals(dt).ToString();//True
201 Label3.Text= dt.GetHashCode().ToString();//1474088234
202 Label4.Text= dt.GetType().ToString();//System.DateTime
203 Label5.Text= dt.GetTypeCode().ToString();//DateTime
204 Label1.Text= dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25
205 Label2.Text= dt.GetDateTimeFormats('t')[0].ToString();//14:06
206 Label3.Text= dt.GetDateTimeFormats('y')[0].ToString();//2005年11月
207 Label4.Text= dt.GetDateTimeFormats('D')[0].ToString();//2005年11月5日
208 Label5.Text= dt.GetDateTimeFormats('D')[1].ToString();//2005 11 05
209 Label6.Text= dt.GetDateTimeFormats('D')[2].ToString();//星期六 2005 11 05
210 Label7.Text= dt.GetDateTimeFormats('D')[3].ToString();//星期六 2005年11月5日
211 Label8.Text= dt.GetDateTimeFormats('M')[0].ToString();//11月5日
212 Label9.Text= dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5日 14:06
213 Label10.Text= dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 14:06
214 Label11.Text= dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT
215 Label1.Text=? string.Format("{0:d}",dt);//2005-11-5
216 Label2.Text=? string.Format("{0:D}",dt);//2005年11月5日
217 Label3.Text=? string.Format("{0:f}",dt);//2005年11月5日 14:23
218 Label4.Text=? string.Format("{0:F}",dt);//2005年11月5日 14:23:23
219 Label5.Text=? string.Format("{0:g}",dt);//2005-11-5 14:23
220 Label6.Text=? string.Format("{0:G}",dt);//2005-11-5 14:23:23
221 Label7.Text=? string.Format("{0:M}",dt);//11月5日
222 Label8.Text=? string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT
223 Label9.Text=? string.Format("{0:s}",dt);//2005-11-05T14:23:23
224 Label10.Text= string.Format("{0:t}",dt);//14:23
225 Label11.Text= string.Format("{0:T}",dt);//14:23:23
226 Label12.Text= string.Format("{0:u}",dt);//2005-11-05 14:23:23Z
227 Label13.Text= string.Format("{0:U}",dt);//2005年11月5日 6:23:23
228 Label14.Text= string.Format("{0:Y}",dt);//2005年11月
229 Label15.Text= string.Format("",dt);//2005-11-5 14:23:23?
230 Label16.Text= string.Format("{0:yyyyMMddHHmmssffff}",dt); //yyyymm等可以设置,比如Label16.Text =string.Format("{0:yyyyMMdd}",dt);