2014-01-03 5 views
0

У меня есть строка даты, как показано ниже:Java формат даты преобразования на Android

Fri, 19 Jul 2013 01:30:22 GMT 
Thu, 12 Sep 2013 19:19:18 GMT 

И я хочу, чтобы преобразовать ниже формат:

2013/07/19 01:30:22 
2013/09/12 19:19:18 

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

DateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z"); 
Date date = dateFormat.parse("Fri, 23 Aug 2013 01:10:35 GMT"); 

Но это показано ниже исключения на линии Date date = dateFormat.parse("Fri, 23 Aug 2013 01:10:35 GMT");:

java.text.ParseException: Unparseable date: "Fri, 23 Aug 2013 01:10:35 GMT" (at offset 0) 

Как его изменить?

ответ

4

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

DateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.ENGLISH); 

ваш язык по умолчанию, вероятно, не английский и не принимает ПТ и август

2

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

String DateStr="Fri, 19 Jul 2013 01:30:22 GMT"; 
    SimpleDateFormat sim=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
    Date d = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z").parse(DateStr); 
System.out.println(sim.format(d)); 
1

Вы можете сделать так.

String newDate = date.getYear()+"/"+date.getMonth()+"/"+date.getDay() and ect. 

или вы можете написать свой собственный метод преобразования

String myConvert(Date date) 
{ 
return date.getYear()+"/"+date.getMonth()+"/"+date.getDay()+ect. 
} 
+0

И возможно использовать string.Format –

+0

методы 'Date.getYear()', 'date.getMonth()' и т.д. ** ** осуждается. См. Java 7 docs [java.util.Date] (http://docs.oracle.com/javase/7/docs/api/java/util/Date.html) –

+0

Я хотел бы использовать java.util.Calendar –

0

Попробуйте с "формат":

SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z"); 
String date = ""; 
try { 
    date = dateFormat.format("Fri, 23 Aug 2013 01:10:35 GMT"); 
} catch(Exception e){ 
    e.printStackTrace(); 
} 
+1

Это не скомпилировано (отмечены кавычки). Кроме того, он не сильно отличается от того, что пытался использовать ОП. Правильный ответ - выбрать английский язык. –

1

Вы можете попробовать этот

DateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z"); 
Date date = dateFormat.parse("Fri, 23 Aug 2013 01:10:35 GMT"); 
String formattedString=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"). 
                format(date).toString(); 
System.out.println(formattedString); 
3

Используйте этот код

String dateString = "Fri, 19 Jul 2013 01:30:22 GMT"; 

    SimpleDateFormat simple = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
    Date date; 
    try { 
     date = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z") 
       .parse(dateString); 
     Log.e("result", "Date:" + simple.format(date)); 

    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
1

Попробуйте

String   dateStr = "Fri, 19 Jul 2013 01:30:22 GMT"; 
SimpleDateFormat sdf  = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
Date    date = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z").parse(dateStr); 
System.out.println(sdf.format(date)); 
1
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
Date date = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z"); 
date.parse("Fri, 19 Jul 2013 01:30:22 GMT"); 
String newDate = simpleDateFormat.format(date); 
Смежные вопросы