Java 使用SimpleDataFormat转换数据格式

Java 使用SimpleDataFormat转换数据格式,java,date,simpledateformat,Java,Date,Simpledateformat,我需要将日期格式转换为新的日期格式。我想像这样展示2016年6月28日,但不管我过了多少个月,它都展示了1月。请查查我失踪的地方 public class DateClass { public static void main(String[] args) { final String OLD_FORMAT = "yyyy-mm-dd"; final String NEW_FORMAT = "MMMM dd,yyy

我需要将日期格式转换为新的日期格式。我想像这样展示2016年6月28日,但不管我过了多少个月,它都展示了1月。请查查我失踪的地方

public class DateClass {

        public static void main(String[] args)
        {
            final String OLD_FORMAT = "yyyy-mm-dd";
            final String NEW_FORMAT = "MMMM dd,yyyy";

            String oldDateString = "2016-06-28";
            String newDateString;

            SimpleDateFormat sdf = new SimpleDateFormat(OLD_FORMAT);
            Date d;
            try {
                d = sdf.parse(oldDateString);
                sdf.applyPattern(NEW_FORMAT);
                newDateString = sdf.format(d);
                System.out.println(""+newDateString);
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

您的
OLD_u2;FORMAT
错误,应该是
“yyyy MM dd”
。此处,小的
m
应替换为大写的
m
,因为小的
m
表示分钟,
m
表示月份,并且在使用
旧格式进行解析时,日期被错误解析

您使用的是
mm
格式的
OLD\u
,表示分钟。您希望有代表月份的
MM

因此,您的
旧\u格式应为
yyyy-MM-dd


在您的情况下,分钟设置为
0
,因此月份为一月。

在java中,mm表示小步舞曲,mm表示月份,因此您必须根据需要更改代码

  final String OLD_FORMAT = "yyyy-MM-dd";
  final String NEW_FORMAT = "MMMM dd,yyyy";

  String oldDateString = "2016-06-28";
换这个

 final String OLD_FORMAT = "yyyy-mm-dd";


我明白了,谢谢大家。。。最终字符串OLD_FORMAT=“yyyy-mm-dd”;应替换为最终字符串OLD_FORMAT=“yyyy-MM-dd”;谢谢你的解释
 final String OLD_FORMAT = "yyyy-MM-dd";