Aplicando formato de fecha y de número a una variable.
A petición popular vamos a publicar un articulo sobre como formatear una variable de tipo fecha o de tipo numerico una sóla vez.
En futuros articulos veremos como cambiar la configuración regional de forma permanente.
Para cambiar el formato numerico y moneda de una variable por ejemplo a partir de la codificación para españa hacemos algo como esto:
Dim NumberToPrint As Decimal = "-232,53" 'Creamos un objeto de tipo NumberFormatInfo basado en un formato existente Dim objCulture As Globalization.NumberFormatInfo = _ New Globalization.CultureInfo("ES-ES").NumberFormat 'Uno a uno cambiamos las propiedades de ese formato (en este caso estamos repitiendo valores por defecto para la demostración) objCulture.CurrencyDecimalDigits = 1 objCulture.CurrencyDecimalSeparator = ","objCulture.CurrencyGroupSeparator = "."objCulture.CurrencyNegativePattern = 1 'Ahora simplemente aplicamos el formato llamando a ToString() el C representa currenc y objCulture el objeto que hemos creado antes Response.Write(NumberToPrint.ToString( "C", objCulture)) |
Podriamos haber seleccionado perfectamente el * como separador de miles si hubieramos querido, ahora veremos como cambiar el formato de tipo fecha y hora
'Creamos un objeto de tipo NumberFormatInfo basado en un formato existenteDim DTFormat As Globalization.DateTimeFormatInfo = _New Globalization.CultureInfo("es-MX", False).DateTimeFormat 'La fecha de hoy Dim DT As New DateTime( _DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day) 'Formateamos a fecha corta Dim strDate As String = DT.ToString(DTFormat.ShortDatePattern)Response.Write(strDate) 'Formateamos ahora la hora en formato largo (hay muchas más plantillas)strDate = DT.ToString(DTFormat.LongDatePattern) Response.Write(strDate) |
Ambos codigos valdrían para aplicar el formato una sóla vez en breve pondremos un tutorial de como cambiar las opciones por defecto de formato de fecha y hora para toda la aplicación.
El codigo está en VB pero para C# es muy similar.