[.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.

Snippets Android (volume 1)

Autoriser l’installation de l’application sur la mémoire externe

Par défaut, l’application créée ne peut pas être déplacée sur la carte SD. Pour autoriser cette possibilité, ajouter la ligne suivante (en gras) dans le fichier Manifest :

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="monpackage"
    android:installLocation="auto"
    android:versionCode="1"
    android:versionName="1.0.0">

Plusieurs valeurs sont possibles, mais « auto » signifie que l’emplacement lors de l’installation sera défini par l’appareil et pourra être modifié manuellement par l’utilisateur s’il le désire. Tout est expliqué ici !

Attention : il y a des situations où il ne faut surtout pas autoriser l’installation sur une mémoire amovible (comme un service permanent) au risque d’avoir de sérieuses instabilités !

Continuer la lecture