2009-07-31 3 views
3

Я использовал следующий код для преобразования строки на сегодняшний день, но применяет часовой пояс устройства во время преобразования.
мне это не нужно, но я хочу ту же дату/время из этой строки, какBlackberry Java String to date conversion

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

Я получаю сообщение об ошибке для метода setTimeZone в Blackberry. Я просто хочу получить представление Date, которое является строковым форматом в формате даты, как есть. – Neo

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