2010-09-20 3 views
0

Je travaille avec une application de rappel d'anniversaire depuis un certain temps. Au cours de laquelle, j'ai remarqué que les anniversaires de contact sont stockés dans différents formats sur différents appareils. Plusieurs d'entre eux sont donnés ci-dessous.Comment android stocker des dates sans année?

aaaa-mm-jj
aaaa-mm-jj'T'HH: mm: ss'Z '
aaaa-mm-jj'T'HH: mm: ss.SSS'Z'

Il a fallu de nombreux plantages et rapports de bogues pour comprendre ces formats. Maintenant, j'ai encore le même problème avec dates sans année. Ceci est un cas valide et il est pris en charge par les contacts Google. Je possède un HTC Desire et ces dates sont stockées dans mon téléphone avec le format suivant (--MM-dd). Ce que je veux savoir, c'est si Android a un moyen standard de stocker des dates (comme les anniversaires/anniversaires) lorsqu'aucune année n'est spécifiée? Selon DateParser, cela devrait prendre l'année en cours mais, ce n'est pas valide. Que puis-je faire pour spécifier explicitement que l'année d'une date est inconnue?

Merci d'avance.

Répondre

3

Je ne pense pas que Android et par conséquent les bibliothèques Java de base ont un moyen de contenir une date sans année car en interne la classe Date utilise un long signé de l'époque (1/1/1900). Il appartient au développeur de gérer les données étranges comme l'année manquante soit en utilisant des classes avec des propriétés supplémentaires comme "non année" ou en définissant un défaut que vous devrez gérer à chaque fois que vous faites face à l'une de vos dates sans année. Et si vous avez besoin de faire des calculs de date/heure compliqués, cela devient vraiment désordonné rapidement. Dans ce cas, vous pouvez regarder le Joda-Time library qui a des choses comme Partial qui peut être juste un combo mois-jour.

Questions connexes