有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用SimpleDataFormat转换数据格式

我需要将日期格式转换为新的日期格式。我想像这样展示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();
            }
        }
    }

共 (4) 个答案

  1. # 1 楼答案

    您在OLD_FORMAT中使用了mm,它代表分钟。您希望有MM,它代表月份

    因此,您的OLD_FORMAT应该是yyyy-MM-dd

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

  2. # 2 楼答案

    你的OLD_FORMAT错了,应该是"yyyy-MM-dd"。在这里,小的m应该被大写的M替换,因为小的m表示分钟,而M表示月份,在使用OLD_FORMAT进行解析时,日期被错误地解析

  3. # 3 楼答案

    换这个

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

     final String OLD_FORMAT = "yyyy-MM-dd";
    
  4. # 4 楼答案

    在java中,mm表示小步舞曲,mm表示月份,因此您必须将代码更改为月份

      final String OLD_FORMAT = "yyyy-MM-dd";
      final String NEW_FORMAT = "MMMM dd,yyyy";
    
      String oldDateString = "2016-06-28";