Blackberry Java String для преобразования даты - PullRequest
3 голосов
/ 31 июля 2009

Я использовал следующий код для преобразования строки в дату, но при преобразовании применяется часовой пояс устройства.
Мне это не нужно, но я хочу ту же дату / время из этой строки, как

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

Ответы [ 2 ]

6 голосов
/ 31 июля 2009

Вы можете принять во внимание смещение часового пояса по умолчанию к дате, которую вы получите после разбора:

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;
}
1 голос
/ 31 июля 2009

В чем проблема, точно? Вы пытаетесь преобразовать «2009-07-31 07: 59: 17.427» в момент времени, но это не указывает уникальный момент времени - без часового пояса. Таким образом, вам нужен часовой пояс, а библиотека должна выбрать один, текущий часовой пояс платформы.

Если проблема в том, что вы хотите указать другой часовой пояс, тогда вызовите DateFormat.setTimeZone ():

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