下列关于java.sql.Date构造方法的描述中,哪一项是正确的?
答案解析
核心考点:java.sql.Date的毫秒处理机制和时区无关性。
解题思路分析:java.sql.Date内部存储的毫秒值始终以UTC时区1970-01-01 00:00:00为基准,构造方法会将毫秒值按整日截断,setTime方法会重新计算日期部分。
选项分析:
- A错误:java.sql.Date不存储时分秒信息,构造时会丢弃时间部分,实际日期应为1970-01-02但无时间存储。
- B错误:java.sql.Date与时区无关,仅存储日期部分的毫秒整日数值。
- C正确:setTime方法会重新计算日期,其内部实现是date = ms / 86400000 * 86400000。
- D错误:java.sql.Date的设计与系统时区无关,始终基于UTC计算。
易错点提醒:容易误选A,混淆了构造时的毫秒截断动作与对象实际存储值的区别。
正确答案:C