Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=2f9d6e0b-5aa9-4d12-8bb7-8a315256621c

Chuleta: Formato de cadenas de texto en .NET

La plataforma .NET proporciona un sistema exhaustivo, flexible y consistente para poder representar de manera textual cualquier tipo de datos numéricos, de fecha y hora e incluso enumeraciones.

El formato de un dato está controlado mediante cadenas de texto que representan diferentes estilos, estándar o personalizados, y que nos sirven para determinar con exactitud cómo queremos que se visualicen los valores cuando hay que convertirlos a texto.

Además de esto, la plataforma .NET tiene en cuenta una cuestión avanzada como son los ajustes culturales del usuario actual. De este modo un mismo formato puede ser representado de manera muy diferente en función del idioma y de los ajustes regionales de los usuarios de nuestras aplicaciones. Por ejemplo, en España la fecha “22 de Abril de 2014” se expresa en formato de fecha corta como 22/04/2014. Sin embargo en formato de fecha corta en inglés americano el mes va siempre en primer lugar, por lo que se mostraría como 04/22/2014. La plataforma tiene en cuenta estas particularidades e incluso se encarga de traducir al idioma apropiado los nombres de los días de la semana o de los meses.

Existen muchos métodos para dar formato a un dato, pero los más comunes son dos:

  • Utilizar el método Format de la clase String. Por ejemplo: Console.WriteLine(String.Format("Hoy es {0:D}", DateTime.Now)); que mostraría la cadena “Hoy es” seguida de la fecha actual en formato largo y en el idioma del usuario actual.
  • Utilizar el método ToString de los distintos tipos pasándole la cadena de formato como parámetro. Por ejemplo: Console.WriteLine(DateTime.Now.ToString("D")); que mostraría la fecha actual en formato largo y en el idioma local.

A continuación hemos resumido en un práctica tabla los diferentes formatos estándar para los distintos tipos, y los formatos personalizables para crear nuestras propias representaciones. Todos ellos se acompañan de ejemplos y sus resultados para el idioma español y región España.

Excepto que se especifique explícitamente en la propia tabla, los especificadores estándar funcionan tanto en minúsculas como en mayúsculas.

Si lo deseas puedes descargar esta “chuleta” en formato PDF para facilitar su impresión y poder tenerla siempre a mano en tu escritorio.

Chuleta Formato de cadenas de texto en .NET

Números

Especificadores de formato numérico básico (en MSDN)

Especificador Tipo Formato

Salida (con 1.23, doble)

Salida (con -12300, entero)

c Divisa/Moneda {0:c} 1,23 € -12,300,00 €
d Decimal (solo funciona con números enteros) {0:d} System.FormatException -12300
e Notación científica {0:e} 1,230000e+000 -1,230000e+004
f Punto fijo {0:f} 1,23 -12300,00
g General {0:g} 1,23 -12300
n Numero con separador de miles {0:n} 1,23 -12.300,00
r Convertible en ambos sentidos {0:r} 1,23 System.FormatException
x Hexadecimal {0:x} System.FormatException ffffcff4
p Porcentaje {0:p} 123,00 % -1.230.000,00 %

Especificadores de formato numérico personalizables (en MSDN)

Especificador Tipo Ejemplo Salida(con 1234.56, doble) Observaciones
0 Marcador de posición 0 {0:00.0000} 1234,5600 Rellena con ceros si es necesario, en este caso llevará dos dígitos mínimo antes de la coma y cuatro decimales. El punto representa el separador decimal que corresponda a la cultura actual (una coma en España).
# Marcador de posición de dígito {0:(#).#} (1234),5 Rellena cada posición con dígitos si existen, sino no pone nada, y si hay de más los omite en los decimales.
. Punto decimal {0:0.0} 1234,5  
´ Separador de miles {0:0,0} 1.234  
% Porcentaje {0:0.0%} 123456,0 % Multiplica por 100, añade el símbolo de %
Tanto por mil {0:0.0‰} 1234560,0 % Multiplica por 1000, añade el símbolo de %
e Notación exponencial {0:00e+0} 12e+2 El número de cero indica el número mínimo de dígitos en el exponente. El "+" fuerza a poner el signo siempre delante del exponente, y el "-" solo cuando es un exponente negativo.
; Separador de sección    

Define secciones con formatos diferentes para números positivos, negativos y el cero. Tiene bastantes opciones. Ver MSDN. Es especialmente útil para dar formato a valores de divisas que requieran poner valores negativos entre paréntesis.

Fechas

Especificadores estándar para fechas (en MSDN)

Especificador Tipo Ejemplo
d Fecha corta 22/04/2014
D Fecha larga martes, 22 de abril de 2014
t Hora corta 18:19
T Hora larga 18:19:47
f Fecha y hora completa martes, 22 de abril de 2014 18:19
F Fecha y hora completa (largo) martes, 22 de abril de 2014 18:19:47
g Fecha y hora por defecto 22/04/2014 18:19
G Fecha y hora por defecto (largo) 22/04/2014 18:19:47
m Patrón mes día 22 abril
r Fecha en formato RFC1123 Wed, 16 Apr 2014 18:19:47 GMT
s Fecha ordenable 2014-04-22T18:19:47
u Universal ordenable 2014-04-22 18:19:47Z
U Universal completa martes, 22 de abril de 2014 18:19:47
y Patrón año, mes abril de 2014
o Convertible en ambos sentidos 2014-04-22T18:19:47.9980451 +02:00

Especificadores personalizados para  fechas (en MSDN)

Especificador Tipo Ejemplo Ejemplo Salida
dd Día {0:dd} 22
ddd Nombre del día corto {0:ddd} mar
dddd Nombre del día completo {0:dddd} martes
f, ff, fff, ffff… Fracciones de segundo {0:ffff} 5960
gg Era (antes de Cristo, etc...) {0:gg} DC
hh hora (entre 1 y 12) {0:hh} 06
HH hora (dos dígitos), formato 24 horas {0:HH} 18
mm Minutos 00-59 {0:mm} 19
MM Mes 01-12 {0:MM} 04
MMM Mes (abreviación) {0:MMM} abr
MMMM Mes (nombre completo) {0:MMMM} abril
s Segundos 0-59 {0:s} 47
ss Segundos 00-59 (rellena con cero) {0:ss} 47
tt AM o PM {0:tt} PM
yy Año (2 dígitos) {0:yy} 14
yyyy Año {0:yyyy} 2014
z Diferencia horaria respecto a GMT {0:%z} +2
zz Diferencia horaria (2 dígitos) respecto a GMT {0:zz} +02
zzz Diferencia horaria (completo) respecto a GMT {0:zzz} +05:00
: Separador de lo anterior {0:hh:mm:ss} 04:40:47
/ Separador de lo anterior {0:dd/MM/yyyy} 20/04/2014

Enumeraciones

Especificadores estándar para enumeraciones (en MSDN)

Especificador Tipo
g Valor por defecto (nombres de flags si están disponibles, si no, el entero correspondiente)
f Siempre nombres de flags
d Siempre enteros
x Ocho dígitos hexadecimal
Fecha de publicación:
campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP
Archivado en: Lenguajes y plataformas

¿Te ha gustado este post?
Pues espera a ver nuestro boletín mensual...

Suscríbete a la newsletter

La mejor formación online para desarrolladores como tú
No se aceptan más comentarios