2012-03-01 3 views
0

Je reçois la date comme ci-dessous dans la réponse de JSON.Formatage du DATE dans la réponse JSON

{"dateTime":"2012-03-03T10:00:00.890+05:30"} 

Je voulais l'afficher comme 3 mars 2012 10Am en java. Comment formater cette date

+0

dépend de la plateforme que vous utilisez pour analyser l'objet JSON. Par exemple, en PHP, vous pouvez utiliser la fonction date(): http://php.net/strtodate –

Répondre

0

Si vous voulez le faire dans Java, utilisez SimpleDateFormat comme ceci:

EDIT: Pour correspondre à votre scénario, je l'ai modifié comme suit:

String input = "2012-03-03T10:00:00.890+05:30"; 

Dans le ci-dessus input chaîne, vous devrez supprimer le : colon de la partie fuseau horaire, à savoir +05:30. Vous pouvez utiliser regex pour faire cela comme indiqué dans this post. Et puis utilisez le code suivant pour le convertir dans le format:

DateFormat oldFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); 
DateFormat newFormat = new SimpleDateFormat("dd MMMMM yyyy hha"); 

String dateStr = newFormat.format(oldFormat.parse(input)); 
+0

Cela fonctionne. Merci pour la réponse :) – techiee

0

Dans JS, cette date est au format standard, donc la nouvelle date (object.dateTime) analysera votre date. Ensuite, en utilisant toGMTString ou toLocalString, vous aurez le bon format. Vous avez juste à dépouiller les 4 premiers et 4 derniers caractères de la chaîne retournée.

0

quelle langue utilisez-vous pour afficher la date?

Vous devez analyser la valeur comme une date, puis vous pouvez modifier le format de l'affichage de cette date.

+0

Désolé. oublié de le mentionner. Dans la langue java – techiee

0

Le answer by Kuldeep Jain est correct. Mais l'utilisation des classes java.util.Date/Calendar doit être évitée car elles sont mal conçues et implémentées.

Utilisez à la place Joda-Time, ou en Java 8, les nouvelles classes java.time. * (Inspirées de Joda-Time).

Alors que Joda-Time vous permet de définir votre propre specific formats pour l'analyse, dans votre cas, vous n'avez pas besoin. Les constructeurs de la classe DateTime de Joda-Time sont déjà construits pour analyser le format ISO 8601 que vous utilisez.

code exemple ...

// © 2013 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so. 
// import org.joda.time.*; 
// import org.joda.time.format.*; 

DateTimeZone timeZone_Kolkata = DateTimeZone.forID("Asia/Kolkata"); 

String input = "2012-03-03T10:00:00.890+05:30"; 
DateTime dateTime = new DateTime(input); 
DateTime dateTimeInUtc = dateTime.toDateTime(DateTimeZone.UTC); 
DateTime dateTimeInKolkata = dateTime.toDateTime(timeZone_Kolkata); 

DateTimeFormatter formatter = DateTimeFormat.forStyle("LS").withLocale(new Locale("en", "IN")); // English, India. 
String output = formatter.print(dateTime); 

Dump à la console ...

System.out.println("dateTime: " + dateTime); 
System.out.println("dateTimeInUtc: " + dateTimeInUtc); 
System.out.println("dateTimeInKolkata: " + dateTimeInKolkata); 
System.out.println("output: " + output); 

Exécuté ...

dateTime: 2012-03-02T20:30:00.890-08:00 
dateTimeInUtc: 2012-03-03T04:30:00.890Z 
dateTimeInKolkata: 2012-03-03T10:00:00.890+05:30 
output: 2 March, 2012 8:30 PM