2
是否有一个错误是java.util.Date?在做一些测试时,我将毫秒设置为 2147483647,这应该给我一个2038-01-19 03:14:07的日期,但是它会返回1970-01-25 20:31:23。还试用了4294967295,并得到1970-02-19 17:02:47的错误答案。有谁知道一个工作围绕java.util.date错误?
import java.util.*;
import java.io.*;
/*
centos 6.3 x64
java version "1.7.0_13"
Java(TM) SE Runtime Environment (build 1.7.0_13-b20)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
*/
public class Test
{
static public void main(String args[])
{
long ms = 2147483647L;
java.util.Date d = new java.util.Date(ms);
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// SHOULD be 2038-01-19 03:14:07
System.out.println(df.format(d));
System.out.println(df.format(new Date(Long.MAX_VALUE)));
System.out.println("\n" + ms);
System.out.println(Long.MAX_VALUE);
}
}
1970年1月25日20时31分23秒 292278994-08-17 7时12分55秒
这正是他的问题 - 这些值对应于秒,给定他(期望)的时间戳。 – 2013-02-22 00:24:26
谢谢......我在墙上试图将C++ time_t传递给java.util.Date。一旦我做了数学,你建议一切正常。 – user2097530 2013-02-22 05:37:13