java时间1970年1月1日,【关于通过Date.getTime()得到1970年01月1日0点零分问题验证】-Java技术论坛-ZOL中关村在线...

博客讨论了关于Java中Date.getTime()方法的一个常见误解,即它返回的是1970年01月01日0点的毫秒数,而实际上返回的是系统时间(协调世界时)对应的毫秒数。由于时区差异,对于东八区如中国,本地时间会是1970年01月01日08:00:00。作者通过测试代码演示了这一现象,并强调了理解时间计算机制的重要性。一位读者指出,系统时间和本地时间的区别导致了这个误解。
摘要由CSDN通过智能技术生成

通常认为Date.getTime()可以得到得到1970年01月1日0点零分以来的毫秒数,经过实践证明是错误的

实际上通过Date.getTime()的到的是1970年01月01日8点中以来的毫秒数,

实践代码如下

public static String getTimestamp_1970() throws Exception {

java.text.SimpleDateFormat formater = new SimpleDateFormat(

"yyyy-MM-dd HH:mm:ss");

java.util.Date   date=   formater.parse("1970-01-01 08:00:00");

return Long.toString(date.getTime());

}

如果调用上面的函数,返回值为0

但是如果调用

public static String getTimestamp_1970() throws Exception {

java.text.SimpleDateFormat formater = new SimpleDateFormat(

"yyyy-MM-dd HH:mm:ss");

java.util.Date   date=   formater.parse("1970-01-01 00:00:00");

return Long.toString(date.getTime());

}

返回-28800000

作为一个软件测试者要相信:只有测过的才是可信的!

yhntgbty 发表于2009-03-15 17:23:23  IP: 125.33.197.*

看到这篇文章,忍不住要说几句。

朋友你错了!

你没有理解时间的计算机制。计算机系统里面的时间有两个,

一个叫做系统时间,一个叫做本地时间。

什么是系统时间?就是跟那个什么子午线的地方一致的时间,计算机如果运行正常的话,世界上所有的计算机的系统时间都应该是相同的。但是问题来了,我们有一个时区的概念,虽然所有的计算机的系统时间相同,但是他们的本地时间不一样,比如在那个子午线上的时间是1970-01-01 00:00:00的系统时间的时候,他的本地时间也是1970-01-01 00:00:00。但是在这个时候的中国,处在东八区,它的本地时间比那个时间快八个小时,也就是1970-01-01 08:00:00。注意这只是本地时间不一致,这时候在中国的计算机的系统时间,仍然是1970-01-01 00:00:00。 现在你明白为什么了么?

你就没想一下为什么是八个小时,而不是七个小时或者九个小时么? 好累。。。

非常感谢yhntgbty的回复,特将回复剪切到文章中来,一方面免得其他读者被我糊弄

二来激励自己以后除了测试验证之外,再多问个为什么,进一步研究。加油!!!

楼主热贴

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值