2009-07-31 8 views
3

J'ai utilisé le code suivant pour convertir la chaîne à ce jour mais il applique le fuseau horaire du périphérique lors de la conversion.
Je ne pas besoin de ça, mais je veux même date/heure de cette chaîne commeBlackberry Java Chaîne de conversion de date

String = "2009-07-31 07:59:17.427" 
Date = 2009-07-31 07:59:17.427 

Date formatter = new Date(HttpDateParser.parse("2009-07-31 07:59:17.427")); 
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); 
String strCustomDateTime = dateFormat.format(formatter); 

Répondre

1

Quel est le problème exactement? Vous essayez de convertir "2009-07-31 07: 59: 17.427" en un point dans le temps, mais, cela ne spécifie pas un moment unique - sans un fuseau horaire. Donc, vous avez besoin d'un fuseau horaire, et la bibliothèque est nécessaire de choisir un, le fuseau horaire actuel de la plate-forme.

Si le problème est que vous souhaitez spécifier un fuseau horaire différent, appelez DateFormat.setTimeZone():

format.setTimeZone(TimeZone.getTimeZone("your time zone")); 
+0

Je reçois une erreur pour la méthode setTimeZone dans Blackberry. Je veux juste obtenir la représentation de date qui est le format de chaîne au format de date tel quel. – Neo

6

Vous pouvez prendre dans le fuseau horaire par défaut du compte de compensation à ce jour que vous obtenez après l'analyse syntaxique:

public static String StringToDate(String dateToParse) { 

    Date formatter = new Date(HttpDateParser.parse(dateToParse)); 
    SimpleDateFormat dateFormat = new SimpleDateFormat(
      "yyyy-MM-dd HH:mm:ss.SSS"); 
    int offset = TimeZone.getDefault().getRawOffset(); 
    formatter.setTime(formatter.getTime() + offset); 
    String strCustomDateTime = dateFormat.format(formatter); 
    return strCustomDateTime; 
}