相关疑难解决方法(0)

Calendar.getTime()中奇怪的IllegalArgumentException

这个完美简单的测试失败了IllegalArgumentException("HOUR_OF_DAY 2 -> 3"),我没有理由.您可以将任何小时,天,月,年更改为任何其他值,并且测试成功.在我测试的任何JRE中都失败了.似乎是GregorgianCalendar实现中的内部问题?还是我错过了一些明显的东西?

import java.util.Calendar;

public class DateTest extends TestCase
{
    /** test if 2011/03/27 02:30:00 converts to a valid date.
     * shouldn't throw any exception, however this throws 
     * IllegalArgumentException("HOUR_OF_DAY 2 -> 3)
     */
    @Test
    public void testDate()
    {
        Calendar cal = Calendar.getInstance();
        cal.setLenient(false);
        cal.clear();
        cal.set(Calendar.SECOND, 00);
        cal.set(Calendar.MINUTE, 30);
        cal.set(Calendar.HOUR_OF_DAY, 02);
        cal.set(Calendar.DAY_OF_MONTH, 27);
        cal.set(Calendar.MONTH, 03 - 1); // needs to be 0-based
        cal.set(Calendar.YEAR, 2011);
        cal.getTime();
    }
}
Run Code Online (Sandbox Code Playgroud)

java calendar

3
推荐指数
1
解决办法
1493
查看次数

标签 统计

calendar ×1

java ×1