得到正确的月份格式日期java

时间:2014-01-15 12:51:57

标签: java simpledateformat

可以提供任何帮助,如何从这样的字符串中获取正确的日期“2014-01-10T09:41:16.000 + 0000” 我的代码是:

    String strDate = "2014-01-10T09:41:16.000+0000";
    String day = "";
    String format = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
    Locale locale = new Locale("es", "ES");
    SimpleDateFormat formater = new SimpleDateFormat(format, locale);
    formater.setTimeZone(TimeZone.getTimeZone("Europe/Madrid"));

    Calendar cal = Calendar.getInstance();

    try {
        cal.setTimeInMillis(formater.parse(strDate).getTime());
        String offerDate = cal.get(Calendar.DAY_OF_MONTH) + "-" + cal.get(Calendar.MONTH) + "-" + cal.get(Calendar.YEAR);
        System.out.println(offerDate);
    } catch (Exception e){
        System.out.println(e.getMessage());
    }

在结果中我给出了类似的东西:“10-0-2014”,我希望结果像“10-01-2014”

提前感谢:)

2 个答案:

答案 0 :(得分:3)

文档说明:

  

java.util.Calendar.MONTH

     

MONTH public static final int MONTH get和set的字段编号   表示月份。这是特定于日历的值。首先   格里高利和朱利安日历中的一年中的一个月是1月   这是0;最后一个取决于一年中的月数。

- > Calendar.MONTH

的计数从0开始

答案 1 :(得分:1)

我认为最简单的方法是使用另一个格式化程序对象来进行格式化,而不是自己构建它:

try {
    Date d = new Date(cal.setTimeInMillis(formater.parse(strDate).getTime()));
    SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
    String offerDate = format.format(d);
    System.out.println(offerDate);
} catch (Exception e){
    System.out.println(e.getMessage());
}