Java从日期获取月份排序名称

Java从日期获取月份排序名称,java,Java,我需要从以下日期格式中获取月份短名称和日期 给定的日期格式为:2015-12-01 00:00:00,我的输出日期格式为Dec,01。但是我的代码总是返回01年1月。请告诉我我的代码哪里错了 String newdate = ""; String ip = "2015-10-01 00:00:00"; try { String old_format = "yyyy-mm-dd HH:mm:ss"; String new_format = "

我需要从以下日期格式中获取月份短名称和日期

给定的日期格式为:
2015-12-01 00:00:00
,我的输出日期格式为
Dec,01
。但是我的代码总是返回01年1月。请告诉我我的代码哪里错了

    String newdate = "";
    String ip = "2015-10-01 00:00:00";
    try {
        String old_format = "yyyy-mm-dd HH:mm:ss";
        String new_format = "MMM, dd";
        SimpleDateFormat sdf = new SimpleDateFormat(old_format);
        Date d = sdf.parse(ip);
        SimpleDateFormat sm = new SimpleDateFormat(new_format);
        newdate = sm.format(d);
        System.out.println(newdate);
    } catch (ParseException e) {
        e.printStackTrace();
    }
}

要获得预期结果,应使用以下格式:

String old_format = "yyyy-MM-dd HH:mm:ss";
MM
而不是
MM
以获取一年中的两位数月份

请检查一下桌子

M
->一年中的月份

m
->以小时为单位的分钟


要获得预期结果,应使用以下格式:

String old_format = "yyyy-MM-dd HH:mm:ss";
MM
而不是
MM
以获取一年中的两位数月份

请检查一下桌子

M
->一年中的月份

m
->以小时为单位的分钟


旧的_格式应为:

String old_format = "yyyy-MM-dd HH:mm:ss"; //mm -> MM
而不是做

SimpleDateFormat sm = new SimpleDateFormat(new_format);
还可以使用applyPattern()方法更改SimpleDataFormat的模式:

sdf.applyPattern(new_format);
newdate = sdf.format(d);

因此,您不必创建另一个SimpleDataFormat对象。

旧的\u格式应为:

String old_format = "yyyy-MM-dd HH:mm:ss"; //mm -> MM
而不是做

SimpleDateFormat sm = new SimpleDateFormat(new_format);
还可以使用applyPattern()方法更改SimpleDataFormat的模式:

sdf.applyPattern(new_format);
newdate = sdf.format(d);

因此,您不必创建另一个SimpleDataFormat对象。

正如另一个所说,使用:

String old_format = "yyyy-MM-dd HH:mm:ss"; //mm -> MM
如果您使用的是JavaSE8或更高版本(推荐),请尝试使用这些类。看


正如另一位所说,使用:

String old_format = "yyyy-MM-dd HH:mm:ss"; //mm -> MM
如果您使用的是JavaSE8或更高版本(推荐),请尝试使用这些类。看


您的旧格式应该是
String old\u format=“yyyy-
MM dd HH:MM:ss”;'m’是几分钟。您应该使用'M'而不是您的旧格式应该是
字符串old\u format=“yyyy-
MM dd HH:MM:ss”;'m’是几分钟。你应该用“M”来代替