2015-10-13 24 views
6

Ho lavorato con parsing di stringhe datetime per la nostra applicazione internazionale. Mi sto imbattendo in un problema di interpretazione che non riesco a trovare una risposta definitiva. Se una stringa datetime ISO 8601 senza un componente fuso orario viene trattata come ora locale?DateTime ISO 8601 senza componente timezone

Per wikipedia (che io non voglio basare le mie decisioni di business fuori di):

In assenza di informazioni UTC relazione viene dato con una rappresentazione del tempo, il tempo si presume essere in locale tempo.

Tuttavia, non riesco a trovare documentazione di supporto tramite ISO o qualsiasi altra fonte di verità generalmente accettabile. Tutto ciò che ho trovato parla di come gestire gli offset per ora locale (ad esempio +/- 0500, ecc.). Supponendo che il tempo locale in questi casi mi aiuterebbe in modo sostanziale in quanto i miei utenti possono inviare la stessa data per tutte le regioni senza dover calcolare l'offset specifico per ciascuna regione.

Ad esempio:

2012-01-01T00:00:00 # Convert to local 
2012-01-01T00:00:00Z # Zulu/UTC...don't convert 

C'è un'interpretazione stabilito per fuso orario-less ISO 8601 stringhe?

risposta

6

La sezione 4.2.2 della ISO 8601 fornisce esempi privi di designatore TZ che indicano che sono orari locali. 4.2.4 dice che i tempi UTC usano il designatore 'Z'. Ovviamente solleva sempre la domanda "ora locale dove?" ...

+0

Impressionante, questo è quello che stavo cercando. È un po 'noioso che la documentazione ISO non sia "pubblicamente" disponibile gratuitamente, motivo per cui l'ho perso la prima volta. Dio benedica le persone che lo caricano comunque :) C'è un attributo intrinseco nell'input dell'utente che specifica la regione, quindi l'aspetto "dove" è già preso in considerazione. – Devin

0

Senza la designazione del fuso orario, la stringa datetime verrà interpretata come ora locale, ma come ora locale per il SERVER.

Se gli utenti si trovano in diversi fusi orari, le date che inviano senza le informazioni TZ verranno interpretate in modo errato con l'offset TZ locale.