2012-09-01 4 views
0

J'essaye d'obtenir la différence entre deux dates mais je suis bloqué pour convertir une chaîne en une date.Différence entre deux dates avec des fuseaux horaires différents

Mon code est:

//create a date send it to the database as string 
    Date currentDate = new Date(); // date looks like: Sat Sep 01 10:20:14 EEST 2012 
    SaveToDB(currentDate.ToString()); 

À un certain point i, essaie de récupérer la date à partir de la base de données:

 String dateStringFromDb = GetDateFromDB(); //Sat Sep 01 10:20:14 EEST 2012 
     Date currentDate = new Date(); 

     //now i'm trying to covnert the dateStringFromDb into a Date, this throws an exception 

     Date dbDate = DateFormat.getInstance().parse(dateStringFromDb); //this throws exception 

     long difference = currentDate.getTime() - dbDate.getTime(); // does this give me the correct difference in GMT even if timezones for the two dates are different? 

Pouvez-vous s'il vous plaît me indiquer la bonne solution?

Malheureusement, la date de la base de données est récupérée en tant que chaîne et je ne peux pas changer cela en un autre type. J'ai donc besoin de convertir cette chaîne en Date().

EDIT:

Exception est:

java.text.ParseException: Format.parseObject(String) failed 
    at java.text.Format.parseObject(Unknown Source) 
    at main.Program.main(Program.java:20) 
+0

Quelle est l'exception? – SiB

+0

@SiB question mise à jour avec exception –

Répondre

2

Je suggère d'utiliser Joda Time API pour votre opération liée aux données et au temps en Java. Le traitement timezone et toutes les nuances de conversion associées sont assez faciles en utilisant cette API.

0

Vous devez spécifier un DateFormat pour correspondre au format de chaîne reçu

Par exemple.

SimpleDateFormat fromUser = new SimpleDateFormat("dd/MM/yyyy"); 
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd"); 
String reformattedStr = myFormat.format(fromUser.parse(inputString)); 

Une fois que vous avez les deux dates au format requis, puis appliquer la date des opérations arithmétiques

Autres Spécificateurs de format pour DateString se trouvent dans http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

Questions connexes