app*_*ppu 0 date simpledateformat
我对 javaDate和SimpleDateFormat.
我有一个应用程序,它以GMT格式维护其文件创建时间yearMonthDayHourMinute。目前我在不同的时区(比如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
Run Code Online (Sandbox Code Playgroud)
以毫秒为单位的时间检索值(第 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
这与您声称需要毫秒的说法不符。