`
linkyou66
  • 浏览: 234892 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

关于通过Date.getTime()得到1970年01月1日0点零分问题验证

 
阅读更多
<p>我的博客:通常认为Date.getTime()可以得到得到1970年01月1日0点零分以来的毫秒数,经过实践证明是错误的</p>
<p>实际上通过Date.getTime()的到的是1970年01月01日8点中以来的毫秒数,</p>
<p>实践代码如下</p>
<p>public static String getTimestamp_1970() throws Exception {<br>java.text.SimpleDateFormat formater = new SimpleDateFormat(<br>"yyyy-MM-dd HH:mm:ss");<br>java.util.Date date= formater.parse("1970-01-01 08:00:00"); <br>return Long.toString(date.getTime());<br>}</p>
<p>如果调用上面的函数,返回值为0</p>
<p>但是如果调用</p>
<p>public static String getTimestamp_1970() throws Exception {<br>java.text.SimpleDateFormat formater = new SimpleDateFormat(<br>"yyyy-MM-dd HH:mm:ss");<br>java.util.Date date= formater.parse("1970-01-01 00:00:00"); <br>return Long.toString(date.getTime());<br>}</p>
<p>返回-28800000</p>
<p>作为一个软件测试者要相信:只有测过的才是可信的!</p>
<p><a rel="nofollow" href="http://hi.csdn.net/yhntgbty" target="_blank">yhntgbty</a>发表于2009-03-15 17:23:23IP: 125.33.197.*</p>
<p></p>
<dd>看到这篇文章,忍不住要说几句。<br>朋友你错了!<br>你没有理解时间的计算机制。计算机系统里面的时间有两个,<br>一个叫做系统时间,一个叫做本地时间。<br>什么是系统时间?就是跟那个什么子午线的地方一致的时间,计算机如果运行正常的话,世界上所有的计算机的系统时间都应该是相同的。但是问题来了,我们有一个时区的概念,虽然所有的计算机的系统时间相同,但是他们的本地时间不一样,比如在那个子午线上的时间是1970-01-01 00:00:00的系统时间的时候,他的本地时间也是1970-01-01 00:00:00。但是在这个时候的中国,处在东八区,它的本地时间比那个时间快八个小时,也就是1970-01-01 08:00:00。注意这只是本地时间不一致,这时候在中国的计算机的系统时间,仍然是1970-01-01 00:00:00。 现在你明白为什么了么?<br>你就没想一下为什么是八个小时,而不是七个小时或者九个小时么? 好累。。。 </dd>
<p></p>
<p>非常感谢yhntgbty的回复,特将回复剪切到文章中来,一方面免得其他读者被我糊弄</p>
<p>二来激励自己以后除了测试验证之外,再多问个为什么,进一步研究。加油!!!</p>
分享到:
评论

相关推荐

    JAVA new Date()或Calendar.getInstance().getTime()得到的时间不对

    如果在博客 "JAVA new Date() 或 Calendar.getInstance().getTime() 得到的时间不对" 中提到的问题,可能是以下几个原因导致的: 1. **时区设置**:Java默认使用操作系统时区。如果系统时区设置不正确,或者程序...

    java.sql.date与java.util.date.pdf

    它的值也是从1970年1月1日开始的毫秒数,不过在创建`java.sql.Date`对象时,会忽略掉时间部分,确保始终表示一天的开始——0点0分0秒。因此,当你通过`new java.sql.Date(new java.util.Date().getTime())`创建`java...

    时间精确到时分秒时,使用getTime获取毫秒数

    `getTime()` 是 JavaScript 中 Date 对象的一个内置方法,它能够返回自1970年1月1日(UTC)凌晨0点0分0秒以来的毫秒数。这个值通常用于计算两个日期之间的差值或者在数据库中存储日期。在这个主题中,我们将深入探讨...

    java.util.Date与java.sql.Date互转及字符串转换为日期时间格式.docx

    它主要用于与数据库交互,并且只包含了日期部分(年、月、日),不包含时间部分(时、分、秒)。当我们将日期对象插入到数据库中时,通常使用的是`java.sql.Date`。 #### 二、Java.util.Date与Java.sql.Date的互相...

    javascript 倒计时

    //月(parseInt(x,10)将变量转成10进制数),注意:月是“0,1,2,3,4,5,6,7,8,9,10,11,” var ri=parseInt(dqTime.substr(8,2),10);//日 var shi=parseInt(dqTime.substr(11,2),10);//时 var fen=parseInt...

    java.util.Date与java.sql.Date互转及字符串转换为日期时间格式[文].pdf

    也可以使用StringTokenizer将字符串分解为年、月、日,然后使用java.sql.Date的构造函数将其转换为日期时间格式: String strDate = "2002-08-09"; StringTokenizer st = new StringTokenizer(strDate, "-"); java....

    java.util.Date与java.sql.Date相互转换

    除了上述方法外,还可以使用 `SimpleDateFormat` 来分别获取年、月、日等信息: ```java SimpleDateFormat sy = new SimpleDateFormat("yyyy"); SimpleDateFormat sm = new SimpleDateFormat("MM"); ...

    Java 之 Date 和 Calendar 实例

    3. `getTime()`:返回从1970年1月1日00:00:00 GMT到当前日期的毫秒数。 4. `setTime(long time)`:设置日期为指定的毫秒值。 然而,`Date`类没有提供修改日期和时间的方法,这导致了`Calendar`类的诞生。`Calendar`...

    js string转date.doc

    如果你知道从1970年1月1日00:00:00 UTC到当前时间的毫秒数,你可以直接传入这个数值来创建Date对象: ```javascript var now = new Date(); var d = new Date(now.getTime()); ``` 这将创建一个与当前时间...

    js date转String 日期字符串转换

    - `getTime()`:获取自1970年1月1日00:00:00 UTC起至现在的毫秒数。 ```javascript var myDate = new Date(); console.log(myDate.getTime()); ``` ##### 2.6 获取小时、分钟、秒和毫秒 - `getHours()`:获取当前...

    有关java中的Date,String,Timestamp之间的转化问题

    Java 中的 Date、String 和 Timestamp 之间的转换问题 Java 中的日期和时间处理是编程中非常重要的一方面,Date、String 和 Timestamp 是三种常用的日期和时间类型,本文将详细介绍它们之间的转换问题。 一、获取...

    Javautildate与javasqldate区别和转换[文].pdf

    你可以通过`getTime()`方法获取自1970年1月1日00:00:00 GMT以来的毫秒数。这个类通常用于处理各种日期和时间相关的任务,不仅限于数据库操作。然而,由于历史原因和API设计的问题,`java.util.Date`在Java 8之后已经...

    JavaScript程序设计课件:Date对象.pptx

    - `getTime()`:返回自1970年1月1日00:00:00 UTC以来的毫秒数。 - `setTime(value)`:根据从1970年1月1日00:00:00 UTC起的毫秒数设置日期。 3. 示例 - 初始化Date对象的实例,可以使用不同参数,例如: ```...

    史上最全java时间类date的处理

    在Java中,`java.util.Date` 类用于表示特定的时间点,即从 1970 年 1 月 1 日 00:00:00 GMT 至现在的毫秒数。然而,为了更好地格式化日期或进行日期的解析,通常会使用 `java.text.SimpleDateFormat` 和 `java.text...

    判断2个时间大小

    //年-月-日 时-分 try { Date date1 = dateFormat.parse(startTime);//开始时间 Date date2 = dateFormat.parse(endTime);//结束时间 // 1 结束时间小于开始时间 2 开始时间与结束时间相同 3 结束时间大于开始...

    Date的Java源代码

    在Java中,`java.util.Date`类用来表示特定的时间点,即毫秒值距离1970年1月1日00:00:00 GMT的时间。这个类提供了一系列的方法用于处理日期和时间,如获取当前日期、设置日期、比较两个日期等。 ### 2. 创建 Date ...

Global site tag (gtag.js) - Google Analytics