关于通过Date.getTime()得到1970年01月1日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 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的回复,特将回复剪切到文章中来,一方面免得其他读者被我糊弄.
二来激励自己以后除了测试验证之外,再多问个为什么,进一步研究。加油!!!

 
本文转自elbertchen 51CTO博客,原文链接:http://blog.51cto.com/linkyou/283236,如需转载请自行联系原作者
相关文章
|
4月前
|
Shell
date $(date --date="2 days" +"%m%d")$(date +"%H%M")然后再输入date时间没变啊
date $(date --date="2 days" +"%m%d")$(date +"%H%M")然后再输入date时间没变啊
|
8月前
|
Shell
echo cal date seq 四个命令
echo cal date seq 四个命令
Easyui validatebox增加对time、date、datetime的验证,时间格式化
Easyui validatebox增加对time、date、datetime的验证,时间格式化
|
Java API
Java常用API(三)Date,DateFormat和Calendar
Java常用API(三)Date,DateFormat和Calendar
89 0
|
Java 关系型数据库 MySQL
Date和Calendar
Date和Calendar
129 0
getTime() 方法
getTime() 方法
76 0
new Date()
new Date()
119 0
|
存储 JavaScript 前端开发
new Date(dateString)
new Date(dateString)
121 0
|
Java
【Java基础】new Date().getTime()和System.currentTimeMillis()获取时间戳的比较
new Date().getTime()和System.currentTimeMillis()获取时间戳的比较
695 0
获取时间戳:new Date().getTime() 和 System.currentTimeMillis() 用法
获取时间戳:new Date().getTime() 和 System.currentTimeMillis() 用法
289 0