字符串转化

1.字符串转化为时间格式

利用DateTime.Parse()方法

示例:

1 string str = "02-28-09 01:20PM";
2 DateTime dt = DateTime.Parse(str,
3 new System.Globalization.CultureInfo("en-us"));
4 Console.WriteLine(dt.ToString("yyyy年MM月dd日HH时mm分"));

详细方法

示例:

View Code
1 DateTime dt = DateTime.Now;
2
3 dt.ToString();//2005-11-5 13:21:25
4  
5 dt.ToFileTime().ToString();//127756416859912816
6  
7 dt.ToFileTimeUtc().ToString();//127756704859912816
8  
9 dt.ToLocalTime().ToString();//2005-11-5 21:21:25
10  
11 dt.ToLongDateString().ToString();//2005年11月5日
12
13 dt.ToLongTimeString().ToString();//13:21:25
14
15 dt.ToOADate().ToString();//38661.5565508218
16
17 dt.ToShortDateString().ToString();//2005-11-5
18
19 dt.ToShortTimeString().ToString();//13:21
20
21 dt.ToUniversalTime().ToString();//2005-11-5 5:21:25
22
23 dt.Year.ToString();//2005
24
25 dt.Date.ToString();//2005-11-5 0:00:00
26
27 dt.DayOfWeek.ToString();//Saturday
28
29 dt.DayOfYear.ToString();//309
30
31 dt.Hour.ToString();//13
32
33 dt.Millisecond.ToString();//441
34
35 dt.Minute.ToString();//30
36
37 dt.Month.ToString();//11
38
39 dt.Second.ToString();//28
40
41 dt.Ticks.ToString();//632667942284412864
42
43 dt.TimeOfDay.ToString();//13:30:28.4412864
44
45 dt.ToString();//2005-11-5 13:47:04
46
47 dt.AddYears(1).ToString();//2006-11-5 13:47:04
48
49 dt.AddDays(1.1).ToString();//2005-11-6 16:11:04
50
51 dt.AddHours(1.1).ToString();//2005-11-5 14:53:04
52
53 dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04
54
55 dt.AddMonths(1).ToString();//2005-12-5 13:47:04
56
57 dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05
58
59 dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10
60
61 dt.AddTicks(1000).ToString();//2005-11-5 13:47:04
62
63 dt.CompareTo(dt).ToString();//0
64
65 dt.Add(?).ToString();//问号为一个时间段
66
67 dt.Equals("2005-11-6 16:11:04").ToString();//False
68
69 dt.Equals(dt).ToString();//True
70
71 dt.GetHashCode().ToString();//1474088234
72
73 dt.GetType().ToString();//System.DateTime
74
75 dt.GetTypeCode().ToString();//DateTime
76
77
78
79 dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25
80
81 dt.GetDateTimeFormats('t')[0].ToString();//14:06
82
83 dt.GetDateTimeFormats('y')[0].ToString();//2005年11月
84
85 dt.GetDateTimeFormats('D')[0].ToString();//2005年11月5日
86
87 dt.GetDateTimeFormats('D')[1].ToString();//2005 11 05
88
89 dt.GetDateTimeFormats('D')[2].ToString();//星期六 2005 11 05
90
91 dt.GetDateTimeFormats('D')[3].ToString();//星期六 2005年11月5日
92
93 dt.GetDateTimeFormats('M')[0].ToString();//11月5日
94
95 dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5日 14:06
96
97 dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 14:06
98
99 dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT
100
101 string.Format("{0:d}",dt);//2005-11-5
102
103 string.Format("{0:D}",dt);//2005年11月5日
104
105 string.Format("{0:f}",dt);//2005年11月5日 14:23
106
107 string.Format("{0:F}",dt);//2005年11月5日 14:23:23
108
109 string.Format("{0:g}",dt);//2005-11-5 14:23
110
111 string.Format("{0:G}",dt);//2005-11-5 14:23:23
112
113 string.Format("{0:M}",dt);//11月5日
114
115 string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT
116
117 string.Format("{0:s}",dt);//2005-11-05T14:23:23
118
119 string.Format("{0:t}",dt);//14:23
120
121 string.Format("{0:T}",dt);//14:23:23
122
123 string.Format("{0:u}",dt);//2005-11-05 14:23:23Z
124
125 string.Format("{0:U}",dt);//2005年11月5日 6:23:23
126
127 string.Format("{0:Y}",dt);//2005年11月
128
129 string.Format("{0}",dt);//2005-11-5 14:23:23
130
131 string.Format("{0:yyyyMMddHHmmssffff}",dt);
132
133 // 计算2个日期之间的天数差
134
135 DateTime dt1 = Convert.DateTime("2007-8-1");
136
137 DateTime dt2 = Convert.DateTime("2007-8-15");
138
139 TimeSpan span = dt2.Subtract(dt1);
140
141 int dayDiff = span.Days + 1;
142
143 // 计算某年某月的天数
144
145 int days = DateTime.DaysInMonth(2007, 8);
146
147 days = 31;
148
149 // 给日期增加一天、减少一天
150
151 DateTime dt =DateTime.Now;
152
153 dt.AddDays(1); //增加一天
154
155 dt.AddDays(-1);//减少一天

日期格式模式 说明

d 月中的某一天。一位数的日期没有前导零。

dd 月中的某一天。一位数的日期有一个前导零。

ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。

dddd 周中某天的完整名称,在 DayNames 中定义。

M 月份数字。一位数的月份没有前导零。

MM 月份数字。一位数的月份有一个前导零。

MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。

MMMM 月份的完整名称,在 MonthNames 中定义。

y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。

yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。

yyyy 包括纪元的四位数的年份。

gg 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。

h 12 小时制的小时。一位数的小时数没有前导零。

hh 12 小时制的小时。一位数的小时数有前导零。

H 24 小时制的小时。一位数的小时数没有前导零。

HH 24 小时制的小时。一位数的小时数有前导零。

m 分钟。一位数的分钟数没有前导零。

mm 分钟。一位数的分钟数有一个前导零。

s 秒。一位数的秒数没有前导零。

ss 秒。一位数的秒数有一个前导零。

f 秒的小数精度为一位。其余数字被截断。

ff 秒的小数精度为两位。其余数字被截断。

fff 秒的小数精度为三位。其余数字被截断。

ffff 秒的小数精度为四位。其余数字被截断。

fffff 秒的小数精度为五位。其余数字被截断。

ffffff 秒的小数精度为六位。其余数字被截断。

fffffff 秒的小数精度为七位。其余数字被截断。

t 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在)。

tt 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在)。

z 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。

zz 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数有前导零。例如,太平洋标准时间是“-08”。

zzz 完整时区偏移量(“+”或“-”后面跟有小时和分钟)。一位数的小时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。

: 在 TimeSeparator 中定义的默认时间分隔符。

/ 在 DateSeparator 中定义的默认日期分隔符。

% c 其中 c 是格式模式(如果单独使用)。如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符。

\ c 其中 c 是任意字符。照原义显示字符。若要显示反斜杠字符,请使用“\\”。

只有上面第二个表中列出的格式模式才能用于创建自定义模式;在第一个表中列出的标准格式字符不能用于创建自定义模式。

自定义模式的长度至少为两个字符;例如,

DateTime.ToString( "d"); // 返回 DateTime 值;“d”是标准短日期模式。

DateTime.ToString( "%d"); // 返回月中的某天;“%d”是自定义模式。

DateTime.ToString( "d "); // 返回后面跟有一个空白字符的月中的某天;“d”是自定义模式。

求相差天数

示例:

1 DateTime dt1 = new DateTime(2004,5,1);
2 DateTime dt2 = new DateTime(2004,6,1);
3 int days = ((TimeSpan)(dt2-dt1)).Days;

3.字符型转换为特殊需求的数值类型示例:

1 // C 货币
2
3 2.5.ToString("C"); // ¥2.50
4
5 // D 10进制数
6
7 25.ToString("D5"); // 25000
8
9 // E 科学型
10
11 25000.ToString("E"); // 2.500000E+005
12
13 // F 固定点
14
15 25.ToString("F2"); // 25.00
16
17 // G 常规
18
19 2.5.ToString("G"); // 2.5
20
21 // N 数字
22
23 2500000.ToString("N"); // 2,500,000.00
24
25 // X 16进制
26
27 255.ToString("X"); // FF

4.取得百分数

示例:

View Code
1 int n1=1,n2=2;
2 double d = n1 /(double)n2 * 100;
3
4 // 怎样四舍五入得到两位数的小数?
5 System.Math.Round(Your数,2)
6 string myString = d.toString("#.##%");
7
8 // 保留2位小数。
9 // 其他的还有很多种format,你自己研究一下了。
10 string strResult = Convert.ToString(dPercent * 100)+ "%";
11
12 Double x = 2222.22222222;
13 Response.Write(x.ToString( "0#.##% "));
14 Response.Write(x.ToString( "###,#.##% "));
posted @ 2011-04-14 15:22  风雅颂  阅读(271)  评论(0编辑  收藏  举报