关于通过Date.getTime()得到1970年01月1日0点零分问题验证
来源:互联网 发布:js null 与 undefined 编辑:程序博客网 时间:2024/04/18 07:46
我的博客:通常认为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的回复,特将回复剪切到文章中来,一方面免得其他读者被我糊弄
二来激励自己以后除了测试验证之外,再多问个为什么,进一步研究。加油!!!
- 关于通过Date.getTime()得到1970年01月1日0点零分问题验证
- 关于通过Date.getTime()得到1970年01月1日0点零分问题验证
- 把1970年1月1日零点零分以来的秒数转换为日期
- Date().getTime()线程堵塞问题
- 怎得到年、月、日?
- PHP中date函数月和日带0问题
- PHP-date函数,月、日,带不带0的问题
- PHP中date函数月和日带0问题
- PHP中date函数月和日带0问题
- PHP中date函数月和日带0问题
- PHP中date函数月和日带0问题
- PHP中date函数月和日带0问题
- 关于new Date().getTime()的简写方式.
- 关于倒计时new Date().getTime()出现NaN
- 关于new Date().getTime()的简写方式.
- 2010年1月4日 0点 随笔
- Date.UTC()返回1970年1月1日午夜之间的毫秒数
- 2007年06月10日如何让Office 2003通过正版验证
- snmp是什么?
- SQL Server中, DateTime (日期)型操作的 SQL语法
- 龌龊
- 最近比较烦
- Java Applet 编程技巧实例专辑
- 关于通过Date.getTime()得到1970年01月1日0点零分问题验证
- _T _TEXT的含义
- AWT的标准布局管理器
- 用Far制作chm的简易教程
- Javascript经典正则表达式
- 帮你弄清引用和指针相同点与区别
- PXA3xx 的一些缩略词
- VC++学习建议
- C++经典书籍解读