微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不可稀释的日期,在Java中有额外的数字

这段代码有什么问题?我试图解析几个月和几个月之间的日期格式.
import java.text.SimpleDateFormat;

class Main {
    public static void main(String[] args) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy'0'MMdd");
        try {
            Date date = format.parse("201600101");
            System.out.println(date);
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
}

这将输出不可稀释日期:“201600101”.如果我将“0”更改为数字[ ‘X’和format.parse(“2016X0101”)]这将工作.

解决方法

正如彼得·劳瑞(Peter Lawrey)所说,Java认为“2016年”是一年.您可以通过将“201600101”修改为例如2016-00101来解决问题,并将格式模式重构为
SimpleDateFormat format = new SimpleDateFormat("yyyy-'0'MMdd");

这将解析你的日期.

原文地址:https://www.jb51.cc/java/124741.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐