Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Unix时间戳转换为Java日期_Java_Date Format - Fatal编程技术网

将Unix时间戳转换为Java日期

将Unix时间戳转换为Java日期,java,date-format,Java,Date Format,代码如下: DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String logTime = format.format(new Date((format.parse("2013-6-30").getTime()+25*24*3600*1000))); String logTime1 = format.format(new Date((format.parse("2013-6-30").getTime()+24*24

代码如下:

DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    String logTime = format.format(new Date((format.parse("2013-6-30").getTime()+25*24*3600*1000)));
    String logTime1 = format.format(new Date((format.parse("2013-6-30").getTime()+24*24*3600*1000)));
    System.out.println("logTime:  "+logTime);
    System.out.println("logTime1:  "+logTime1);
这是输出:

  logTime:  2013-06-05
  logTime1:  2013-07-24

这里怎么了?

您有一个溢出。试一试

25L * 24*3600*1000
因此,该值是一个很长的值。您的IDE应该突出显示您拥有的将溢出

这会打印一个明显不正确的数字

-2134967296

印刷品

time + 25d:  2013-07-25
time + 24d:  2013-07-24

你有一个溢出。试一试

25L * 24*3600*1000
因此,该值是一个很长的值。您的IDE应该突出显示您拥有的将溢出

这会打印一个明显不正确的数字

-2134967296

印刷品

time + 25d:  2013-07-25
time + 24d:  2013-07-24

不知道你为jetbrains工作!;-)(ps:netbeans没有给出任何警告…pfff)我使用Ecipse,因为它是java的IDE,我认为Eclipse应该像在命令行上一样编译代码。Eclipse可能没有那么多警告,但我不认为这是问题的原因。事实上,这是正确的结果,而不是您期望的结果。
int
是一个32位有符号值,如果您执行的计算太大,则只保留较低的32位。这在JLS中定义,因为它是大多数CPU的行为方式。这就是32=bit
int
在C语言中的行为。我不知道你为jetbrains工作过!;-)(ps:netbeans没有给出任何警告…pfff)我使用Ecipse,因为它是java的IDE,我认为Eclipse应该像在命令行上一样编译代码。Eclipse可能没有那么多警告,但我不认为这是问题的原因。事实上,这是正确的结果,而不是您期望的结果。
int
是一个32位有符号值,如果您执行的计算太大,则只保留较低的32位。这在JLS中定义,因为它是大多数CPU的行为方式。这是32=bit
int
在C中的行为。我不确定问题是什么,但在第一种情况下,你乘以25,第二次乘以24。为什么?我想他是说加上24天不是问题,但加上25天是问题。时间乘以24是正常的,但当乘以25时,它就变成了错误的日期。我不确定问题是什么,但在第一种情况下,你乘以25,第二次乘以24。为什么?我想他是说加上24天不成问题,但加上25天就成了问题。时间乘以24是正常的,但当乘以25时,它就变成了错误的日期。