2014-01-20 3 views
0

Я пытаюсь преобразовать строку, представляющую дату, хранящуюся в SQLITE.Преобразование строки на сегодняшний день Android

Дата хранилась в SQLite следующим образом:

Date date; 

date.toString(); 

Согласно с Java документации, toString() метод:

Возвращает строковое представление этой даты. Форматирование равно , эквивалентное использованию SimpleDateFormat со строкой формата «EEE MMM dd HH: mm: ss zzz yyyy», которая выглядит примерно так: «Вт июн 22 13:07:00 PDT 1999». Используются текущий часовой пояс и локаль по умолчанию. Если вам нужен , то вам необходимо управлять часовым поясом или языковым стандартом, вместо этого используйте SimpleDateFormat .

До сих пор это нормально, но, когда я пытаюсь получить строку и преобразовать ее на дату снова, Java выдает исключение.

Строка приходит из SQLite:

Mon Jan 20 18:26:25 BRT 2014 

Итак, я:

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US); 

Date date= sdf.parse("Mon Jan 20 18:26:25 BRT 2014"); 

Что я делаю неправильно?

Спасибо.

+0

Вы не сказали нам, что вы ожидаете, и что вы на самом деле получить. –

+0

А что такое исключение? –

+0

Извините! Мне нужно получить дату в этом формате: «dd/MM/yyyy». – vitorvigano

ответ

1

попробовать этот код

String dateString = "here your date"; 
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); 
Date convertedDate = new Date(); 
try { 
    convertedDate = dateFormat.parse(dateString); 
} catch (ParseException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
System.out.println(convertedDate); 
+0

Этот ответ кажется перевернутым: он вводит выходной формат и выводит входной формат. – laalto

+0

не работал для меня. – vitorvigano

+0

Вы могли бы получить мне свою дату в строке, чтобы попробовать с моим кодом? –

1

Попробуйте это:

String w = "Mon Jan 20 18:26:25 BRT 2014"; 
SimpleDateFormat pre = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); 
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); 
try{ 
    Date date = pre.parse(w); 
    System.out.println(sdf.format(date)); 
}catch(Exception e){ 
    e.printStackTrace(); 
} 

Выход:

20/01/2014 
+0

Мне нужно получить строку «Mon Jan 20 18:26:25 BRT 2014» и конвертировать в «dd/MM/yyyy». Ваш ответ неправильный. – vitorvigano

+0

Вы принимаете его строго как String или Date? –

+0

Я получаю строку. – vitorvigano

0

Formatter для хранения и восстановления значения данных в формате dd/MM/yyyy

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy"); 

Сохранение данных

String dataAsString = simpleDateFormat.format(date); // 20/01/2014 

Восстановление данных

Date data = simpleDateFormat.parse(dataAsString); 
Смежные вопросы