gpt4 book ai didi

java - GregorianCalendar 构造函数是否检查无效输入?

转载 作者:行者123 更新时间:2023-11-30 03:06:25 26 4
gpt4 key购买 nike

GregorianCalendar构造函数有签名:

GregorianCalendar(int year, int month, int dayOfMonth)
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)

如果我通过 month 会发生什么或dayOfMonth超出构造函数契约(Contract)?

很容易检查月份是否在 0-11 范围内。但如果不编写自己的日历实现,就不可能检查有效日期(应该是 28/29/30/31?)。

如果 Java 平台检查用户日期输入,那就太好了。我不想检查 2015-13-32 是否在自己的代码中是有效的 ISO 日期。

最佳答案

构造函数不会检查,您可以做的是在执行 setLenient(false) 后设置时间,这将使日历仅接受有效值:

Calendar cal = Calendar.getInstance();
cal.setLenient(false);
cal.set(2016, Calendar.FEBRUARY, 30);
System.out.println(new SimpleDateFormat("dd/MM/yyyy").format(cal.getTime()));

此示例将引发异常,因为 02/30/2016 不是有效日期(该异常由 cal.getTime() 引发)。

关于java - GregorianCalendar 构造函数是否检查无效输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34662082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com