-10
SimpleDateFormat df2 = new SimpleDateFormat("dd-MMM-yyyy");
String eDate ="04/26/2013";
Date eDDte;
try {
    eDDte = df2.parse(eDate);
    System.out.println("Date: " + eDDte);
} catch(ParseException e){
}

注意:我unparseable date error上了第 5 行。我已经尝试了许多其他格式,但我不知道是什么问题。

4

4 回答 4

10

您需要将格式更改为:“MM/dd/yyyy”以正确解析您的日期:“04/26/2013”

这个简单的测试打印:Date: 26-Apr-2013

public class DateFormatTest {
    public static void main(String... args) {
        SimpleDateFormat df2 = new SimpleDateFormat("MM/dd/yyyy");
        SimpleDateFormat df3 = new SimpleDateFormat("dd-MMM-yyyy");
        String eDate ="04/26/2013";
        Date eDDte;
        try {
            eDDte = df2.parse(eDate);
            System.out.println("Date: " + df3.format(eDDte));
        } catch(ParseException e){
            e.printStackTrace();
        }
    }
}
于 2013-04-27T09:16:36.860 回答
2

日期格式 dd-MMM-YYYY 不会解析 04/26/2013 的日期。解析为日期格式,例如 26-APR-2013。

这是常见日期模式的列表。 一般来说,你的日期模式是这样的:

  • 输入一个日期,前导零,后面有一个破折号
  • 输入三个字母的速记月份 (APR),后面有一个破折号
  • 拿在年

为了让 SimpleDateFormat 解析它,它必须完全符合该模式。因此例外。

如果您不想要该模式,请探索更传统的 MM/dd/YYYY 日期模式,它将与您的日期字符串匹配。

于 2013-04-27T09:15:28.767 回答
0

首先将日期 '04/26/2013' 解析为 'MM/dd/yyyy' 然后解析它。

    SimpleDateFormat df2 = new SimpleDateFormat("dd-MM-yyyy");
    SimpleDateFormat ef2 = new SimpleDateFormat("MM/dd/yyyy");
    String eDate = "04/26/2013";
    Date eDDte;
    try {
        Date nDate = ef2.parse(eDate);
        eDDte = df2.parse(df2.format(nDate));
        System.out.println("Date: " + eDDte);
        System.out.println("\nFormated Date:"+ df2.format(nDate));
    } catch (Exception e) {
    }

输出:

Date: Fri Apr 26 00:00:00 GMT+05:30 2013

Formated Date:26-04-2013
于 2013-04-27T09:40:31.347 回答
0

尝试这个

SimpleDateFormat df2 = new SimpleDateFormat("MM/dd/yyyy");
String eDate ="04/26/2013";
Date eDDte;
try {
    eDDte = df2.parse(eDate);
    System.out.println("Date: " + eDDte);
} catch(ParseException e){ }
于 2013-04-27T09:28:48.113 回答