有时日期对象给我一周的错误日子。我的代码非常简单。在Java中,为什么Date()对象的printf有时会出错?
//Setting to 2017, April, 12th
Date dt = new Date(2017, 3, 11);
System.out.printf("%TA", dt);
这给了我'星期三',这是正确的。事实上,它似乎在最近和未来的任何一年都可以正常工作。
但是,如果我将时间设置为2999,8月,5日。这是
//Setting to 2999, August, 5th
Date dt = new Date(2999, 7, 4);
System.out.printf("%TA", dt);
它实际上是8月5日2999是星期一时返回'星期二'。
这是怎么发生的?我该如何解决它?
干杯!
不建议使用年份,月份和日期的构造函数,并且不应使用它。 – 1615903
您不打印2017年或2999年的日期。您打印的日期为3917和4899.还有一个避免使用java.util.Date的原因。你也试图打印出8月4日而不是8月5日。 (而不是7月11日,而不是7月12日。)我建议你删除这个问题,因为它基本上结束为“我没有阅读我调用的构造函数的文档。” –
请注意,通过首先调用'System.out.println(dt);'来检查日期是否正确,就可以看到这两个错误。在指责平台之前,始终认为*你的*代码可能是错误的 - 如果你要声明平台是错误的,那么你应该尽一切可能首先检查平台。 –