2016-01-16 2 views
1

Я пытаюсь разобрать UTC TimeZone в моей дате, для этого сначала я форматирую его с помощью SimpleDateFormat, а затем передаю «UTC» в formatter TimeZone. Но проблема в том, что когда я пытаюсь разобрать эту строку в Date, она снова меняет время без формата UTC.String to Date Parsing Java

private Date getDateUTC_Converter(Date dateString) { 

     SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy"); 
     formatter.setTimeZone(TimeZone.getTimeZone("UTC")); 

     // dateString = Mon Feb 01 13:00:00 GMT+04:00 2016 
     Date value = null; 

     try {// Mon Feb 01 13:00:00 GMT+04:00 2016 
     // After UTC Mon Feb 01 09:00:00 +0000 2016 
      String abc = formatter.format(dateString); 
      value = formatter.parse(abc); 
     // After i am getting this Mon Feb 01 13:00:00 GMT+04:00 2016 here. 

     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 

     return value; 
     } 
+0

Для начала, должен dateString быть объектом String вместо объекта Date? –

ответ

0

Не форматируйте входную строку. Разберите его сразу.

private Date getDateUTC_Converter(String dateString) { 
    SimpleDateFormat parser = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy"); 
    parser.setTimeZone(TimeZone.getTimeZone("UTC")); 
    try { 
     // suppose dateString = "Mon Feb 01 13:00:00 GMT+04:00 2016" 
     // this returns "Mon Feb 01 09:00:00 +0000 2016" 
     return parser.parse(dateString); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
    return null; 
}