Comment puis-je convertir un timestamp à partir de aaaa-MM-jjthh:mm:ss:SSSZ format MM/jj/aaaa hh:mm:ss.SSS format? De ISO8601 à l'UTC
Je veux convertir le timestamp 2011-03-10T11:54:30.207 Z pour 10/03/2011 11:54:30.207. Comment puis-je faire cela? Je veux convertir format ISO8601 à l'UTC et puis UTC devrait être l'emplacement courant. S'il vous plaît aider
String str_date="2011-03-10T11:54:30.207Z";
DateFormat formatter ;
Date date ;
formatter = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS");
date = (Date)formatter.parse(str_date);
System.out.println("output: " +date );
Exception :java.texte.ParseException: Unparseable date: "2011-03-10T11:54:30.207 Z"
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous devez être conscient que l'UTC n'est pas un format, c'est une zone de temps, effectivement. Ainsi, "la conversion de ISO8601 à l'UTC" n'a pas vraiment de sens en tant que concept.
Cependant, voici un exemple de programme utilisant les Joda Time qui analyse le texte dans un
DateTime
et puis les met en forme. J'ai deviné à un format que vous souhaitez utiliser - vous n'avez pas vraiment fourni suffisamment de renseignements au sujet de ce que vous essayez de faire pour en dire plus. Vous pouvez également envisager de fuseaux horaires... voulez-vous afficher le local temps à l'instant? Si oui, vous aurez besoin de travailler sur le temps de l'utilisateur de la zone et de convertir de façon appropriée.Oui. vous pouvez utiliser SimpleDateFormat comme ça.
De sortie
OldDate-->2011-03-10T11:54:30.207 Z
NewDate-->10-Mar-2011 11:54:30.207
hh
est en format 12 heures,HH
est de 24 heuresEntrez la date originale en un
Date
de l'objet et ensuite, imprimez le résultat avec unDateFormat
. Vous pourriez avoir à diviser la chaîne en petits morceaux afin de créer la premièreDate
de l'objet, si la méthode d'analyse automatique n'accepte pas le format de votre.Pseudocode:
convertYourInputIntoADateInWhateverWayYouPrefer()
méthode après tout.Vous pouvez avoir un coup d'oeil à joda time, ce qui est un peu plus facile à utiliser que le java native date d'outils, et fournit de nombreux date de modèles pré-construits.
En réponse aux commentaires, plus de détail:
Pour ce faire à l'aide de Joda temps, vous avez besoin de deux DateTimeFormatters - un pour votre format d'entrée pour analyser vos commentaires et pour votre format de sortie pour imprimer votre sortie. Votre format d'entrée est un format standard ISO, de sorte Joda time ISODateTimeFormat classe possède une méthode statique avec un analyseur syntaxique pour déjà: dateHourMinuteSecondMillis. Votre format de sortie n'est pas celui qu'ils ont un pré-construit formateur pour l', de sorte que vous aurez à faire un vous-même à l'aide de DateTimeFormat. Je pense que
DateTimeFormat.forPattern("mm/dd/yyyy kk:mm:ss.SSS");
devrait faire l'affaire. Une fois que vous avez vos deux formateurs, à l'appel de laparseDateTime()
méthode sur le format d'entrée et laprint
méthode sur le format de sortie pour obtenir votre résultat, comme une chaîne de caractères.De les mettre ensemble devrait ressembler à quelque chose comme ceci (attention, non testé):
Espère que cela Aide:
Utilisation DateFormat. (Désolé, mais la brièveté de la question ne garantit pas une plus ou réponse plus détaillée.)