Timestamp sTs = Timestamp.valueOf("1900-12-31 23:59:59.999"); // Make Timestamp
System.out.println("sTs====>" + sTs.getTime());
sTs====> -2177485200001 // in jdk 1.4
Timestamp sTs = Timestamp.valueOf("1900-12-31 23:59:59.999"); // Make Timestamp
System.out.println("sTs====>" + sTs.getTime());
sTs====> -2177483400001 // in jdk 1.5
Run Code Online (Sandbox Code Playgroud)
为什么两个值不同?
Joe*_*een 12
根据Sun网站上现已删除的帖子
夏令时(DST)是一个处理全年日光变化量的系统.DST的目标是在典型的清醒时间内最大化可用的白天时间.通过将时钟调整到标准数量(通常是一小时),人们可以在典型的工作日期间获得更多的日光.例如,假设您每天早上7点起床.在春天,太阳每天早起.DST观察员不是在早上6点起床才能利用日光,而是将时钟提前一小时.结果是他们可以根据时钟继续在早上7点醒来,享受更多的日光.在秋天,人们将时钟设置为一小时,因为日出每天都会发生.
美国计划从2007年开始改变其DST遵守情况.2005年的能源政策法案要求DST将于3月的第二个星期日开始,并于11月的第一个星期日结束.2007年,开始和停止日期分别为3月11日和11月4日.这些日期与之前的DST开始和结束日期不同.2006年,日期是4月的第一个星期日(2006年4月2日)和10月的最后一个星期日(2006年10月29日).
Java运行时环境(JRE)存储有关全球范围内DST遵守的规则.较旧的JRE将有过时的规则将被2005年的能源政策法取代.因此,在旧的JRE上运行的申请可能会报告2007年3月11日至2007年4月2日以及2007年10月29日至11月的错误时间4,200
该更改已在Java 1.4.2_13中更新.因此,如果您的版本较旧,那么您将看到不同的行为.
Evg*_*eev 10
我认为这是因为1.4可能不支持时区历史变化(http://www.timezoneconverter.com/tzchist.html).问题是Timestamp在当地时区解析时间,你的语言环境中的时区在1900年是不同的,1.4没有考虑,但1.5
| 归档时间: |
|
| 查看次数: |
841 次 |
| 最近记录: |