2012-05-17 5 views
0

Может ли кто-нибудь помочь мне с преобразованием DATETIME funtction в Java. Я извлекаю формат времени даты из заголовков SMS в этом формате «Пт май 18 09:22:39 FJT 2012». Я хочу преобразовать его в этот формат «2012-05-18 09: 51: 42.39». ,DATETIME convert

ответ

0

Используйте для этого SimpleDateFormat. Хотя я не уверен, что часовой пояс «FJT» известен на Java. Поэтому вам, возможно, придется сделать некоторые трюки.

0

Как предложено @Guillaume, используйте SimpleDateFormat. Вот пример:

public String convert() throws ParseException { 
    SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); 
    Date output = format.parse("Fri May 18 09:22:39 FJT 2012"); 
    Calendar outputCal = Calendar.getInstance(format.getTimeZone()); 
    outputCal.setTime(output); 
    return String.format("%04d-%02d-%02d %02d:%02d:%02d",outputCal.get(Calendar.YEAR),  outputCal.get(Calendar.MONTH)+1, outputCal.get(Calendar.DAY_OF_MONTH), outputCal.get(Calendar.HOUR_OF_DAY), outputCal.get(Calendar.MINUTE), outputCal.get(Calendar.SECOND)); 
} 

Все зашиты - вы должны добавить параметры, необходимые

0
import java.text.SimpleDateFormat; 

...

String d = "Fri May 18 09:22:39 FJT 2012"; 
SimpleDateFormat inputFormat = new SimpleDateFormat("EEE MMM d HH:mm:ss ZZZ yyyy"); 
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SS"); 
outputFormat.setTimeZone(TimeZone.getTimeZone("GMT")); // set yr time zone for output 
Date date = inputFormat.parse(d); 
System.out.println(outputFormat.format(date)); 
+0

Проблема с этим - он будет выводить дату в * ваш * часовой пояс не FJT :). – Chip

+0

Поскольку вопрос имеет два разных значения для времени, я не был уверен, что это было не намерение, но я должен был сделать его явным - спасибо, Чип! – Andrew

+0

Спасибо всем .... –