#VS2017 – Xaml Converter para mostrar fechas UTC en el formato local

Hola !

Hoy toca post rápido que ya empieza Visual Studio 2017 en Austin y mejor sacar los posts que tengo en modo “backUp”. El primero es uno simple:

Cómo crear un XAML Converter que muestre un valor de tipo DateTime en el formato local donde se esté ejecutando la aplicación.

En estos días he tenido que volver a buscar esté código, ya que una App que durante todo el proceso de desarrollo “funcionaba bien”, de repente al desplegarla a producción comenzó a mostrar las fechas con un defasaje de un par de horas. Resulta que uno de los entornos de producción se había creado en Europa y claro, desde Norte América las horas se veían mal.

El código del converter es simple

 

using System;
using Windows.UI.Xaml.Data;
namespace ElBruno.UI.Converters
{
public class UtcToLocalDateTimeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return DateTime.SpecifyKind(DateTime.Parse(value.ToString()), DateTimeKind.Utc).ToLocalTime();
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
}

Y la utilización con un binding es también bastante simple

<Page
…>
<Page.Resources>
<converters:UtcToLocalDateTimeConverter x:Key="UtcToLocalDateTimeConverter" />
</Page.Resources>
<TextBlock TextAlignment="Center"
Run Text="{Binding SomeEntity.Date, Converter={StaticResource UtcToLocalDateTimeConverter}}" />
</TextBlock>
</Page>

Asi que lo dejo por aquí, para no tner que irme aun Git – TFs la próxima vez a buscar donde lo utilizaba ! 😀

Saludos @ Austin VSLive

El Bruno

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.