2009-07-31 54 views
3

我使用下面的代码将字符串转换为日期,但它在转换时应用设备的时区。
我不需要这个,但我想相同的日期/时间从字符串如黑莓Java到日期转换的字符串

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); 

回答

1

什么问题,到底是什么?您试图将“2009-07-31 07:59:17.427”转换为时间点,但是,这并没有指定一个独特的时间点 - 没有时区。所以你确实需要一个时区,而图书馆则需要选择一个,即平台当前的时区。

如果问题是你要指定一个不同的时区,然后调用DateFormat.setTimeZone():

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

我在Blackberry中的setTimeZone方法出现错误。我只想将字符串格式的日期表示按原样获取到日期格式。 – Neo 2009-07-31 10:31:10

6

您可能需要帐户默认时区偏移和你约会解析后得到:

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; 
}