java.util.Date.getTime()的问题
我对javajava.util.Date.getTime()的问题,date,simpledateformat,Date,Simpledateformat,我对java日期和简化格式有疑问 我有一个应用程序,它以yearMonthDayHourMinute的格式将文件创建时间保持在GMT中。目前我在不同的时区(比如说IST)。因此,我想以GMT格式进行所有处理 下面的代码片段显示了如何将存储在对象中的日期转换为TimeInMillis > 1. SimpleDateFormat valueSDF = new SimpleDateFormat("yyyyMMddHHmm"); > 2. valueSDF.set
日期
和简化格式
有疑问
我有一个应用程序,它以yearMonthDayHourMinute
的格式将文件创建时间保持在GMT中。目前我在不同的时区(比如说IST
)。因此,我想以GMT
格式进行所有处理
下面的代码片段显示了如何将存储在对象中的日期转换为TimeInMillis
> 1. SimpleDateFormat valueSDF = new SimpleDateFormat("yyyyMMddHHmm");
> 2. valueSDF.setTimeZone(TimeZone.getTimeZone("GMT"));
> 3. Date date = valueSDF.parse("201212060915");
> 4. System.out.println("date.getTime(): "+ date.getTime()); // returns 1354785300000
> 5. String fileCreationTime= Long.toString((date.getTime()/1000));
> 6. System.out.println("time :: "+ fileCreationTime); // returns 1354785300
检索到的时间值(以毫秒为单位)(步骤#4)具有额外的三个尾随零。我的应用程序需要的是结果除以1000。(步骤5)
我很想知道,为什么date.getTime()会在结果中附加更多的零。
堆栈专家,请分享您的建议
我很想知道,为什么date.getTime()会在结果中附加更多的零
没有。它给出了自Unix纪元以来的毫秒数。如果需要自1970年1月1日午夜UTC的Unix纪元以来的秒数,则需要除以1000。如果你想要毫秒(正如你声称的那样),那么不要除以1000。这就是它的全部——它的行为完全符合预期
不清楚你为什么认为它在“加”三个零,但我可以向你保证它不是。请注意,从Unix时代开始,1354785300毫秒将仅为376小时
您给出的日期(2012年12月6日,UTC上午9:15)是自Unix纪元以来的1354785300000毫秒。你为什么期望结果是1354785300
我的应用程序需要的是结果除以1000
这与你声称需要毫秒不符
我很想知道,为什么date.getTime()会在结果中附加更多的零
没有。它给出了自Unix纪元以来的毫秒数。如果需要自1970年1月1日午夜UTC的Unix纪元以来的秒数,则需要除以1000。如果你想要毫秒(正如你声称的那样),那么不要除以1000。这就是它的全部——它的行为完全符合预期
不清楚你为什么认为它在“加”三个零,但我可以向你保证它不是。请注意,从Unix时代开始,1354785300毫秒将仅为376小时
您给出的日期(2012年12月6日,UTC上午9:15)是自Unix纪元以来的1354785300000毫秒。你为什么期望结果是1354785300
我的应用程序需要的是结果除以1000
这与您声称需要毫秒不符。感谢John的快速响应。我们的应用程序需要的正是毫秒,而不是秒。如果您可以尝试运行上面的代码段,您可以看到差异。@RRP:我可以看到差异,因为您要除以1000!但是如果你想要毫秒,你不应该除以1000。@John>我的应用程序需要实际的毫秒数,但不需要加上'000'(即1354785300)。所以我不得不将它除以1000,以便以所需的方式运行我的应用程序。@RRP:这不再是毫秒。那是几秒钟。我不知道该怎么说。。。1354785300是Unix纪元与给定日期/时间之间的秒数。这不是毫秒数。你做算术了吗?你难道看不出1354785300毫秒是一个非常小的时间量吗?(大约15天)?感谢John指出了较少的时间(15天)。实际上,这是我的申请中的一个问题。谢谢约翰的快速回复。我们的应用程序需要的正是毫秒,而不是秒。如果您可以尝试运行上面的代码段,您可以看到差异。@RRP:我可以看到差异,因为您要除以1000!但是如果你想要毫秒,你不应该除以1000。@John>我的应用程序需要实际的毫秒数,但不需要加上'000'(即1354785300)。所以我不得不将它除以1000,以便以所需的方式运行我的应用程序。@RRP:这不再是毫秒。那是几秒钟。我不知道该怎么说。。。1354785300是Unix纪元与给定日期/时间之间的秒数。这不是毫秒数。你做算术了吗?你难道看不出1354785300毫秒是一个非常小的时间量吗?(大约15天)?感谢John指出了较少的时间(15天)。实际上,这是我的申请中的一个问题。