日期格式转换错误

时间:2013-09-05 07:51:53

标签: java date

转换日期时我遇到了问题:

目前的格式为:Thu Sep 05 12:07:46 IST 2013(dow mon dd hh:mm:ss zzz yyyy)

我需要转换为:09/04/2013 11:38 PM PDT(mm/dd/yyyy hh:mm a zzz)

但我无法转换。

4 个答案:

答案 0 :(得分:0)

尝试使用SimpleDateFormatter。您必须告诉它输入/输出格式,您可以基于on this description执行此操作(您还可以在那里找到一些常见示例)。

代码将是这样的:

try {
    String input = "Thu Sep 05 12:07:46 IST 2013";
    DateFormat formatter = new SimpleDateFormat("I leave this to you :-)))");
    System.out.println(formatter.parse(input));
} catch (ParseException e) {
    e.printStackTrace();
}

希望有所帮助。

答案 1 :(得分:0)

   try {
          DateFormat dffrom = new SimpleDateFormat("E MMM dd hh:mm:ss zzz yyyy");
          DateFormat dfto = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss a zzz");  
          Date date = dffrom.parse("Thu Sep 05 12:07:46 IST 2013");     
          String s = dfto.format(date);
          System.out.println(s);
   } catch (ParseException e) {

   }

输出

09/05/2013 00:07:46 AM IST

<强>更新

   try {
        DateFormat dffrom = new SimpleDateFormat("E MMM dd hh:mm:ss zzz yyyy");
        DateFormat dfto = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss a zzz");
        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
        dfto.setTimeZone(zone);
        Date date = dffrom.parse("Thu Sep 05 12:07:46 IST 2013");       
        String s = dfto.format(date);
        System.out.println(s);
   } catch (ParseException e) {

   }

输出

09/04/2013 11:37:46 PDT

答案 2 :(得分:0)

你可以这样做

TimeZone tz = TimeZone.getTimeZone("PST8PDT"); // example
 // required format. Remember M is for month, m for miniute
DateFormat df = new SimpleDateFormat("MM/dd/yyyy hh:mm a zzz");
df.setTimeZone(tz);
String text = df.format(new Date());// current time
System.out.println(text);

另请查看 TimeZones in Java

答案 3 :(得分:0)

您也尝试转换日期格式和timeZone,因此您需要在代码中转换时区。

SimpleDateFormat sf = new SimpleDateFormat("dow mon dd hh:mm:ss zzz yyyy");
isoFormat.setTimeZone(TimeZone.getTimeZone("PDT"));
Date date = isoFormat.parse("mm/dd/yyyy hh:mm a zzz");

这可能对你有帮助。