0

任何人都可以帮助我在 Java 中转换 DATETIME 函数。我以这种格式“Fri May 18 09:22:39 FJT 2012”从 SMS 标头中检索日期时间格式。我想将其转换为这种格式“2012-05-18 09:51:42.39”。谁能帮忙。

4

3 回答 3

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

一切都是硬编码的——你必须根据需要添加参数

于 2012-05-17T22:45:48.150 回答
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));
于 2012-05-17T22:47:36.057 回答
0

为此目的使用SimpleDateFormat 。虽然我不确定 Java 中是否知道时区“FJT”。所以你可能需要为此做一些技巧。

于 2012-05-17T22:07:33.960 回答