Formato de String o String Formatting en C#

Si te gusta los posts en mi blog, por favor sígueme en Twitter  bajo @lalfarod para ver mis aportaciones. 

Amigos, 

Espero que estén bien, les quiero comentar que el día de hoy tuve muchas preguntas de cómo poder hacer un formato para diferentes tipos de string, como fechas, enteros, decimales, etc. 

Bueno, voy a escribir este post para ayudar a todos :) Espero que les sea útil. 

1) Empecemos con los strings: 

Para los strings no hay mucho que hacer en el tema de colocar un formato, más que todo únicamente se puede jugar con la alineación o alineamiento de los caracteres como lo muestro a continuación.

Ejemplo

Resultado

String.Format(”->{1,10}<-”, “Hola”);

-> Hola<-

String.Format(”->{1,-10}<-”, “Hola”);

->Hola <-

Si se dan cuenta, en el primer ejemplo se coloca un espacio en blanco al principio y en el segundo se lo coloca al final. 

2) Números 

                2.1) Formato básico de números:                

Especificador

Tipo

Formato

Salida (Parámetro 2.50)

Salida (Parámetro - 12400)

c

Currency

{0:c}

$2.50

-$12,400

d

Decimal (Numero Entero)

{0:d}

System.FormatException

-12400

e

Scientific

{0:e}

2.500000e+000

-1.240000e+004

f

Fixed point

{0:f}

2.50

-12400.00

g

General

{0:g}

2.50

-12400

n

Number  (Numero con comas para los miles)

{0:n}

2.50

-12,400

r

Round trippable

{0:r}

2.50

System.FormatException

x

Hexadecimal

{0:x4}

System.FormatException

cf90

                 Ejemplo: string.Format("{0:c}", 2.50) 

                2.2) Diferentes formatos más complejos para los números:

 

Especificador

Ejemplo

Salida (Parámetro Double 1500.42)

0

{0:00.0000}

1500.4200

#

{0:(#).##}

(1500).42

.

{0:0.0}

1500.4

,.

{0:0,.}

2

%

{0:0%}

150042%

e

{0:00e+0}

15e+2

                Ejemplo: string.Format("{0:0.0}", 1500.42)

2) Fechas

 

                Con las fechas hay que hacer la observación que estas dependen de su configuración regional que tengan en su máquina o servidor, los resultados que voy a mostrar son para mi configuración persona. 

Especificador

Tipo

Ejemplo

Salida (El parámetro System.DateTime.Now)

Nota

d

Short date

{0:d}

13/03/2009

Fecha corta

D

Long date

{0:D}

viernes, 13 de marzo de 2009

Fecha Larga

t

Short time

{0:t}

06:15 p.m.

Hora corta

f

Full date & time

{0:f}

viernes, 13 de marzo de 2009 06:16 p.m.

Fecha y hora

F

Full date & time (long)

{0:F}

viernes, 13 de marzo de 2009 06:17:03 p.m.

Fecha y hora larga

g

Default date & time

{0:g}

13/03/2009 06:17 p.m.

Fecha  y hora predeterminada

G

Default date & time (long)

{0:G}

13/03/2009 06:18:47 p.m.

Fecha  y hora predeterminada larga

M

Month day pattern

{0:M}

13 marzo

Dia y Mes

           Ejemplo: string.Format("{0:M}", DateTime.Now)

 

Especificador Tipo Ejemplo Salida (El parametro System.DateTime.Now) Nota
dd Day {0:dd} 10 Dia
ddd Day name {0:ddd} Vie Nombre del Dia
dddd Full day name {0:dddd} Viernes Nombre del Dia completo
f, ff, … Second fractions {0:fff} 923 Segundos
gg, … Era {0:gg} D.C.
hh 2 digit hour {0:hh} 10 Hora en dos digitos
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} Mar
MMMM Full month name {0:MMMM} Marzo
ss Seconds 00-59 {0:ss} 46
tt AM or PM {0:tt} PM
yy Year, 2 digits {0:yy} 2
yyyy Year {0:yyyy} 2009
zz Timezone offset, 2 digits {0:zz} -5
zzz Full timezone offset {0:zzz} -05:00
: Separator {0:hh:mm:ss} 10:43:20
/ Separator {0:dd/MM/yyyy} 11/03/2009

Espero que les haya servido este post, como siempre estoy a sus ordenes. 

Un Saludo, 

Luis Antonio Alfaro

Published Fri, Mar 13 2009 18:25 by lalfaro

Comments

# re: Formato de String o String Formatting en C#

Sunday, March 22, 2009 1:01 AM by Josue

Gracias por este articulo, me ayudo mucho. Lo voy a guardar en mis favoritos :)

# re: Formato de String o String Formatting en C#

Wednesday, April 22, 2009 1:08 AM by Edmundo Morales

Excelente artículo. Muchísimas gracias.

# re: Formato de String o String Formatting en C#

Tuesday, June 16, 2009 3:50 PM by Rodmy

Gracias por el articulo, me ayudo a aprender mucho mas, me servira para mi gran problema.