Chuleta: Formato de cadenas de texto en .NET
Publicado por
campusMVP
el
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.
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 |
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
¿Te ha gustado este artículo? ¡Compártelo!