为什么SimpleDateFormat在这种情况下将月份作为1月而不是10月?

时间:2015-10-31 16:44:43

标签: java simpledateformat

我有这种转换日期的方法

我希望将日期作为 10月30日返回,但为什么会返回 1月10日

这是我的程序

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class Test {
    public static void main(String[] args) throws ParseException {
         String today = convertdate("10/30/2015");
            System.out.println("Today : " + today);
    }
    public static String convertdate(String recivieddate) throws ParseException {
        SimpleDateFormat in = new SimpleDateFormat("dd/mm/yyyy");
        Date date = in.parse(recivieddate);
        SimpleDateFormat out = new SimpleDateFormat("MMM-dd");
        String newdate = out.format(date);
        return newdate;
    }
}

您能否告诉我如何解决此问题?

2 个答案:

答案 0 :(得分:6)

你混淆了模式。您在几天之前使用了几个月, mm 是分钟,而不是月份, MM

=> SimpleDateFormat in = new SimpleDateFormat(" MM / dd / yyyy");

public class Test {
    public static void main(String[] args) throws ParseException {
         String today = convertdate("10/30/2015");
            System.out.println("Today : " + today);
    }
    public static String convertdate(String recivieddate) throws ParseException {
        SimpleDateFormat in = new SimpleDateFormat("MM/dd/yyyy");
        Date date = in.parse(recivieddate);
        SimpleDateFormat out = new SimpleDateFormat("MMM-dd");
        String newdate = out.format(date);
        return newdate;
    }
}

答案 1 :(得分:3)

您的in格式错误。它不应该是"dd/mm/yyyy",而是"MM/dd/yyyy"

SimpleDateFormat in = new SimpleDateFormat("MM/dd/yyyy");