Gérer ses formats de date sous Android

Tout programmeur a un jour été confronté à l’affreuse tâche de devoir gérer un format de date dans l’un de ses programmes. Des outils existent mais ne conviennent pas toujours aux besoin ou au format que l’on souhaite mettre en place et on en arrive souvent à se dire qu’avec un peu de tolérance, l’utilisateur ne devrait pas avoir besoin de sa foutue date.

Heureusement les développeurs Android ont pris le taureau par les cornes et nous ont donné le SimpleDateFormat.

Cette classe nous permet de traiter des données de date dans le format que l’on souhaite sans se heurter à des problèmes de fonctions deprecated ou à des librairies maison souvent aussi compréhensibles qu’inefficaces.

Synchroniser son serveur à un serveur de temps

Owncloud est une solution d’hébergement personnel particulièrement bien fichue. Afin de garder un versionning des fichiers qui soit cohérent, il demande que l’heure de sa machine et du serveur soient synchronisés. L’heure de ma machine étant la bonne, il ne m’a pas été dur de trouver le responsable de cette erreur.

Pour synchroniser un serveur sans affichage graphique, on utilise le logiciel ntp. Pour l’installer :

apt-get install ntp

NTP signifie Network Time Protocol et est un protocole qui permet de de synchroniser l’heure d’un ordinateur sur un autre qui a une plus grande précision (ou en tout cas dont l’exactitude est avérée).

Pour le configurer, il suffit d’aller ajouter/modifier dans le fichier /etc/ntp.conf la liste des serveur de temps afin d’en prendre des proches de là où est pour une meilleure précision. Je ne ferais pas une liste ici puisque les serveurs peuvent changer et que tout dépend de là où vous êtes. Cependant un petit tour sur Google devrait vous donner les bonnes adresses en un rien de temps.

Une fois les adresses en place, il suffit de relancer le démon qui a dû se lancer avec l’installation à l’aide de la commande :

/etc/init.d/ntp restart

Un petit détail reste encore à régler qui est la resynchronisation de l’horloge du système d’exploitation avec celle du BIOS. Afin de régler celle là aussi, il suffit de taper :

hwclock --systohc

et le tour est joué. L’horloge du BIOS sera mise à l’heure de l’OS. On peut cependant régler la date et l’heure à la main n’importe quand à l’aide des commandes :

date --set HH:MM:SS
date --set AAAA-MM-JJ

ou par NTP avec :

ntpdate <URL_DU_SERVEUR_DE_TEMPS>

On peu vérifier la nouvelle heure à l’aide de la commande :

date