java – 尝试将日期YYYY-MM-DD转换为DD-MMM-YYYY,但该函数始终将1月作为月份返回.

我有以下函数来转换日期:

public String dateConvert(String D){

        SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-DD");
        SimpleDateFormat format2 = new SimpleDateFormat("dd-MMMM-yyyy");
        Date date = null;
        try {
            date = format1.parse(D);
        } catch (ParseException e) {
            // Todo Auto-generated catch block
            e.printstacktrace();
        }
        String dateString = format2.format(date);
        dateString = dateString.replace("-"," "); 
        System.out.println(dateString);
        return ((dateString));
    }

然而,无论何时,我都会将这个月转换为1月.我不明白我哪里错了!

解决方法

大写字母D是一年中的某一天,而不是该月的某一天.

如果你采取一个月中的任何一天(1-31)并将其视为一年中的某一天,它将在一月份.

使用小写d表示format1.

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...