Loupe

[Xamarin] Conversion d’un DateTime vers NSDate et vice/versa

Avec le passage à l’Unified API de Xamarin.iOS, la convertion implicite d’un DateTime vers NSDate ou d’une NSDate vers un DateTime ne fonctionne plus.

Fort heureusement, les équipes de Xamarin nous propose un petit bout de code, rappelé ici, qui vous permet de faire ce travail de conversion:

public static class DateTimeExtensions
{
    public static DateTime NSDateToDateTime(this NSDate date)
    {
        var reference = TimeZone.CurrentTimeZone.ToLocalTime (new DateTime (2001, 1, 1, 0, 0, 0));

        return reference.AddSeconds (date.SecondsSinceReferenceDate);
    }

    public static NSDate DateTimeToNSDate(this DateTime date)
    {
        var reference = TimeZone.CurrentTimeZone.ToLocalTime (new DateTime (2001, 1, 1, 0, 0, 0));

        return NSDate.FromTimeIntervalSinceReferenceDate ((date - reference).TotalSeconds);
    }
}

(La source peut être visualisée ici: http://developer.xamarin.com/guides/cross-platform/macios/unified/)

 

Happy coding !

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus