关于用SimpleDateFormat进行日期格式化的问题
??? 做了遮掩一个实验:
public static void main(String[] args) {long currentTime = System.currentTimeMillis();int timestamp = (int) (currentTime / 1000);System.out.println(currentTime);System.out.println((long)timestamp*1000);SimpleDateFormat dt=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println(dt.format(new java.util.Date(currentTime)));System.out.println(dt.format(new java.util.Date((long)timestamp*1000)));}
?
做完以后输出是这样的:
130163625578813016362550002011-04-01 13:37:352011-04-01 13:37:35
?于是就奇怪了,最后new Date()里面的时间不相同,为什么格式化以后的日期却是相同的呢?
在群里面问了一下,答案是这样的:
?? 格式化的时候输入到秒,而两个时间只相差858毫秒,还不到一秒呢,也就是说你SimpeDateFormat里面的那个pattern只是精确到秒,所以就出现了上面那种情况,当二者相差不到1秒的时候,格式化出来当然就相同了。