我正在将 GregorianCalendar 实例转换为 Date 以获得 unix 时间戳。
但我想知道为什么相同的日期每次都返回不同的 Unix 时间戳。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar calendar = new GregorianCalendar();
calendar.set(2018, 0, 1, 0,0,0);
System.out.println(sdf.format(calendar.getTime()));
Date date = calendar.getTime();
System.out.println(sdf.format(date));
System.out.println(date.getTime());
日期本身是正确的,并且始终相同,“2018/01/01 00:00:00”
。但是为什么每次的unix时间戳都不一样呢?例如,这些是执行 5 次后的值。
1514761200624
1514761200618
1514761200797
1514761200209
1514761200132
最佳答案
当您创建一个新日历时,它包含当前日期和时间。之后,您更新除毫秒之外的所有字段。如您所见,所有输出中只有最后 3 个数字不同,这是执行时间的毫秒数。
关于java - 为什么日期转换会返回不同的时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57059291/