Me soutenir

Flattr this

Mes applications

Mes applications sur le Google Play Store

Liens en bazar récents

    Archives mensuelles : octobre 2013

    [.NET] Convertir un timestamp POSIX en date

    Ceci est le tout premier article consacré à la programmation avec le Framework .NET.

    Tous les codes donnés sont écrits en C#, mais peuvent être aisément convertis dans n’importe quel autre langage .NET de votre choix (VB.NET, C++/CLI, etc).

    Préambule

    On commence en douceur avec un snippet permettant de convertir un timestamp POSIX en date traditionnelle ;)

    C’est toujours pratique de l’avoir sous le coude au cas où !

    Qu’est-ce qu’un « timestamp POSIX » au fait ? C’est un nombre entier (codé sur 32 bits) représentant le nombre de secondes écoulées depuis le 1er janvier 1970 00:00:00 UTC, comme décrit dans la norme POSIX.

    Code

    Ce snippet convertit ce timestamp sous forme de chaîne de caractères représentant l’équivalent en date et heure locales :

    String POSIXTimestampToDate(String timestamp)
    {
        DateTime date = new DateTime(1970, 1, 1, 0, 0, 0);
    
        date = date.AddSeconds(Double.Parse(timestamp)).ToLocalTime();
    
        return date.ToString();
    }

    Exemple

    En bonus et en guise d’exemple, voici comment extraire la date d’installation de Windows en utilisant ce snippet (en effet, celle-ci est stockée dans le registre sous la forme d’un timestamp POSIX) :

    using Microsoft.Win32;
    
    String GetSystemInstallDate()
    {
        String data = Registry.GetValue("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion", "InstallDate", "").ToString();
    
        return POSIXTimestampToDate(data);
    }

    Exemple de la sortie d'une application affichant la date d'installation.

    Exemple de la sortie d’une application affichant la date d’installation.