ToString()⽤法详解与格式说明
我们经常会遇到对时间进⾏转换,达到不同的显⽰效果,默认格式为:2006-6-6 14:33:34
如果要换成成200606,06-2006,2006-6-6或更多的格式该怎么办呢?
这⾥将要⽤到:DateTime.ToString的⽅法(String, IFormatProvider)
⽰例:
using System;
using System.Globalization;
String format="D";
DateTime date=DataTime.Now;
Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo));
结果输出
Thursday, June 16, 2006
在这⾥列出了参数format格式详细⽤法
=======================
格式字符关联属性/说明
d ShortDatePattern
D LongDatePattern
f 完整⽇期和时间(长⽇期和短时间)
F FullDateTimePattern(长⽇期和长时间)
g 常规(短⽇期和短时间)
G 常规(短⽇期和长时间)
m、M MonthDayPattern
r、R RFC1123Pattern
s 使⽤当地时间的 SortableDateTimePattern(基于 ISO 8601)
t ShortTimePattern
T LongTimePattern
u UniversalSortableDateTimePattern ⽤于显⽰通⽤时间的格式
U 使⽤通⽤时间的完整⽇期和时间(长⽇期和长时间)
y、Y YearMonthPattern
下表列出了可被合并以构造⾃定义模式的模式
========================================
这些模式是区分⼤⼩写的;例如,识别“MM”,但不识别“mm”。如果⾃定义模式包含空⽩字符或⽤单引号括起来的字符,则输出字符串页也将包含这些字符。未定义为格式模式的⼀部分或未定义为格式字符的字符按其原义复制。
格式模式说明:
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”是⾃定义模式。
⽐较⽅便的是,上⾯的参数可以随意组合,并且不会出错,多试试,肯定会到你要的时间格式
如要得到2005年06⽉这样格式的时间
可以这样写:
date.ToString("yyyy年MM⽉", DateTimeFormatInfo.InvariantInfo)
如此类推.
下⾯列出⼀些Asp中具体的⽇期格式化⽤法:
============================================
1.绑定时格式化⽇期⽅法:
2.数据控件如DataGrid/DataList等的件格式化⽇期⽅法:
e.Item.Cell[0].Text = Convert.ToDateTime(e.Item.Cell[0].Text).ToShortDateString();
3.⽤String类转换⽇期显⽰格式:
String.Format( "yyyy-MM-dd ",yourDateTime);
4.⽤Convert⽅法转换⽇期显⽰格式:
Convert.ToDateTime("2005-8-23").ToString
("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo); //⽀持繁体数据库
5.直接⽤ToString⽅法转换⽇期显⽰格式:
DateTime.Now.ToString("yyyyMMddhhmmss");
DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")
6.只显⽰年⽉
DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}")
7.显⽰时间所有部分,包括:年⽉⽇时分秒
DataFormatString='{0:yyyy-MM-dd HH24:mm:ss}'>
格式化数值:有时,我们可能需要将数值以⼀定的格式来呈现,就需要对数值进⾏格式化。我们使⽤格式字符串指定格式。格式字符串采⽤以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符,控制格式化输出的有效位数或⼩数位数。
==================================================================
stringstr1 =string.Format("{0:N1}",56789);              //result: 56,789.0
stringstr2 =string.Format("{0:N2}",56789);              //result: 56,789.00
stringstr3 =string.Format("{0:N3}",56789);              //result: 56,789.000
stringstr8 =string.Format("{0:F1}",56789);              //result: 56789.0
stringstr9 =string.Format("{0:F2}",56789);              //result: 56789.00
stringstr11 =(56789 / 100.0).ToString("#.##");          //result: 567.89
stringstr12 =(56789 / 100).ToString("#.##");            //result: 567
C 或 c
货币
Console.Write("{0:C}", 2.5); / 2.50
Console.Write("{0:C}", -2.5); //($2.50)
D 或 d
⼗进制数
Console.Write("{0:D5}", 25); //00025
E 或 e
科学型
Console.Write("{0:E}", 250000); //2.500000E+005
F 或 f
固定点
Console.Write("{0:F2}", 25); //25.00
Console.Write("{0:F0}", 25); //25
G 或 g
常规
Console.Write("{0:G}", 2.5); //2.5
N 或 n
数字
Console.Write("{0:N}", 2500000); //2,500,000.00
X 或 x
⼗六进制
Console.Write("{0:X}", 250); //FA
Console.Write("{0:X}", 0xffff); //FFFF
/////////////////////////////////////////////////////////////////////////////////
C#格式化数值结果表
字符说明⽰例输出
C货币string.Format("{0:C3}", 2)$2.000
D⼗进制string.Format("{0:D3}", 2)002
E科学计数法  1.20E+001  1.20E+001
G常规string.Format("{0:G}", 2)2
truncated在存储过程中怎么使用N⽤分号隔开的数字string.Format("{0:N}", 250000)250,000.00
X⼗六进制string.Format("{0:X000}", 12)C
string.Format("{0:000.000}", 12.2)012.200
Strings
There really isn't any formatting within a strong, beyond it's alignment. Alignment works for any argument being printed in a String.Format call.
Sample Generates
String.Format("->{1,10}<-", "Hello");-> Hello<-
String.Format("->{1,-10}<-", "Hello");->Hello <-
Numbers
Basic number formatting specifiers:
Specifier Type Format
Output
(Passed
Double 1.42)
Output
(Passed
Int -12400)
c Currency{0:c}$1.42-$12,400
d Decimal (Whol
e number){0:d}System. FormatException
-12400
e Scientific{0:e}  1.420000e+000-1.240000e+004
f Fixed point{0:f}  1.42-12400.00
g General{0:g}  1.42-12400
n Number with commas for thousands{0:n}  1.42-12,400
r Round trippable{0:r}  1.42System. FormatException
x Hexadecimal{0:x4}System. FormatException
cf90
Custom number formatting:
Specifier Type Example Output (Passed Double 1500.42)Note 0Zero placeholder{0:00.0000}1500.4200Pads with zeroes.
#Digit placeholder{0:(#).##}(1500).42
.Decimal point{0:0.0}1500.4
,Thousand separator{0:0,0}1,500Must be between two zeroes.
,.Number scaling{0:0,.}2Comma adjacent to Period scales by 1000.
%Percent{0:0%}150042%Multiplies by 100, adds % sign.
e Exponent placeholder{0:00e+0}15e+2Many exponent formats available.
;Group separator see below
The group separator is especially useful for formatting currency values which require that negative values be enclosed in parentheses. This currency formatting example at the bottom of this document makes it obvious:
Dates
Note that date formatting is especially dependant on the system's regional settings; the example strings here are from my local locale.
Specifier Type Example (Passed System.DateTime.Now)
d Short date10/12/2002
D Long date December 10, 2002
t Short time10:11 PM
T Long time10:11:29 PM
f Full date & time December 10, 2002 10:11 PM
F Full date & time (long)December 10, 2002 10:11:29 PM
g Default date & time10/12/2002 10:11 PM
G Default date & time (long)10/12/2002 10:11:29 PM
M Month day pattern December 10
r RFC1123 date string Tue, 10 Dec 2002 22:11:29 GMT
s Sortable date string2002-12-10T22:11:29
u Universal sortable, local time2002-12-10 22:13:50Z
U Universal sortable, GMT December 11, 2002 3:13:50 AM
Y Year month pattern December, 2002
The 'U' specifier seems broken; that string certainly isn't sortable.
Custom date formatting:
Specifier Type Example Example Output
dd Day{0:dd}10
ddd Day name{0:ddd}Tue
dddd Full day name{0:dddd}Tuesday
f, ff, ...Second fractions{0:fff}932
gg, ...Era{0:gg}  A.D.
hh  2 digit hour{0:hh}10
HH  2 digit hour, 24hr format{0:HH}22
mm Minute 00-59{0:mm}38
MM Month 01-12{0:MM}12
MMM Month abbreviation{0:MMM}Dec
MMMM Full month name{0:MMMM}December
ss Seconds 00-59{0:ss}46
tt AM or PM{0:tt}PM
yy Year, 2 digits{0:yy}02
yyyy Year{0:yyyy}2002
zz Timezone offset, 2 digits{0:zz}-05
zzz Full timezone offset{0:zzz}-05:00
:Separator{0:hh:mm:ss}10:43:20
/Separator{0:dd/MM/yyyy}10/12/2002
Enumerations
Specifier Type
g Default (Flag names if available, otherwise decimal)
f Flags always

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。