2010-08-24 19 views
7

J'écris une application qui expose une API REST. Certains des paramètres de requête seront date/heure (précis à deuxième), et certaines des réponses seront des horodatages (précis à la milliseconde).Format de date recommandé pour l'API REST

L'implémentation de l'API sur le serveur est en Java. Les applications clientes peuvent être n'importe quoi - java, javascript, .NET. L'API renvoie des données XML ou JSON. Les données Date/Heure sont stockées dans une base de données Oracle. Est-ce que quelqu'un a des recommandations, basées sur la douleur antérieure, de ce que le meilleur format de format est pour transmettre ces valeurs date/heure. Je me suis dit d'utiliser juste un bon vieux temps pour stocker le nombre de millisecondes depuis le 1er janvier 1970, 00:00:00 GMT.

Modifier La plage de dates couverte dans l'API est pour les événements en temps réel, donc il n'y aura rien avant 2010, et (moi-même la mise en place comme un abus ici) rien après 2038.

je suppose que le mieux serait a) Une grande variété de langues prend en charge la conversion de cet objet de date long en interne, sans avoir à écrire de code pour le faire.

b) le plus bas de frais généraux (sur l'application de serveur CPU)

Répondre

8

ISO 8601 tout le chemin

L'utilisation d'une méthode basée époque-signifie que vous êtes lié à la gamme (dans la plupart des systèmes) d'un signé 32- bit INT (1901-12-13T20: 45: 52 + 00: 00 à 2038-01-19T03: 14: 07 + 00: 00) qui, est vraiment plus d'un timbre qu'une date, car il ne peut pas gérer des dates historiques ou futures de grande envergure.

+0

Salut Peter - J'ai édité la question pour clarifier la gamme de dates que je vais interroger, à l'aise dans la «gamme d'époque» - cela changerait-il votre recommandation pour la norme ISO 8601? – Kevin

+3

Y2.038K nous voilà! –

+0

@Tom Je sais, je l'attends juste –