Вы находитесь на странице: 1из 6

C#

string.Format("{0:C3}", 2)

2.000

string.Format("{0:D3}", 2)

002

1.20E+001

1.20E+001

string.Format("{0:G}", 2)

N string.Format("{0:N}", 250000) 250,000.00

string.Format("{0:X000}", 12)

string.Format("{0:000.000}", 012.200 12.2)

Strings

Therereally 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:

Output (Passed Specifier Type Format Double 1.42)

Output (Passed Int -12400)

Currency

{0:c}

1.42

-12,400

System. d Decimal (Whole number) {0:d} FormatException -12400

Scientific

{0:e}

1.420000e+000

-1.240000e+004

Fixed point

{0:f}

1.42

-12400.00

General

{0:g}

1.42

-12400

Number with commas for thousands

{0:n}

1.42

-12,400

System. r Round trippable {0:r} 1.42 FormatException

System. x Hexadecimal {0:x4} FormatException cf90

Custom number formatting:

Output (Passed Specifier Type Example Double 1500.42) Note

Zero placeholder {0:00.0000}

1500.4200

Pads with zeroes.

Digit placeholder

{0:(#).##}

(1500).42

Decimal point

{0:0.0}

1500.4

Thousand , separator {0:0,0} 1,500

Must be between two zeroes.

Comma adjacent to Period scales by ,. Number scaling {0:0,.} 2 1000.

Multiplies by 100, adds % % Percent {0:0%} 150042% sign.

Exponent e placeholder {0:00e+0} 15e+2

Many exponent formats available.

Group separator

see below

Thegroup separator is especially useful for formatting currency valueswhich require that negative values be enclosed in parentheses. Thiscurrency formatting example at the bottom of this document makes itobvious: Dates Notethat date formatting is especially dependant on the system's regionalsettings; the example strings here are from my local locale.

Specifier

Type

Example (Passed System.DateTime.Now)

Short date

10/12/2002

Long date

December 10, 2002

Short time

10:11 PM

Long time

10:11:29 PM

Full date & time

December 10, 2002 10:11 PM

Full date & time (long)

December 10, 2002 10:11:29 PM

Default date & time

10/12/2002 10:11 PM

Default date & time (long)

10/12/2002 10:11:29 PM

Month day pattern

December 10

RFC1123 date string

Tue, 10 Dec 2002 22:11:29 GMT

Sortable date string

2002-12-10T22:11:29

Universal sortable, local time

2002-12-10 22:13:50Z

Universal sortable, GMT

December 11, 2002 3:13:50 AM

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

Default (Flag names if available, otherwise decimal)

Flags always

Integer always

x
Some Useful Examples

Eight digit hex.

String.Format("{0:#,##0.00;(#,##0.00);Zero}", value);

Thiswill output "1,240.00" if passed 1243.50. It will output the sameformat but in parentheses if the number is negative, and will outputthe string "Zero" if the number is zero.

String.Format("{0:(###) ###-####}", 18005551212);

This will output "(800) 555-1212".

.ToString()
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.00%

Вам также может понравиться