135

我正在尝试将我的文件名称保存为当前日期和时间(以毫秒为单位)。在阅读文件时我想阅读最新的文件。这是代码

 Calendar rightNow = Calendar.getInstance();

  long offset = rightNow.get(Calendar.ZONE_OFFSET) +  rightNow.get(Calendar.DST_OFFSET);

  String sinceMidnight = Long.toString((rightNow.getTimeInMillis() + offset) %  (24 * 60 * 60 * 1000));

  return sinceMidnight+"_"+Filename;
4

4 回答 4

329

我认为使用 Java 来利用这个功能

long time= System.currentTimeMillis();

这将以毫秒模式返回当前时间。这肯定会奏效

long time= System.currentTimeMillis();
android.util.Log.i("Time Class ", " Time value in millisecinds "+time);

这是我使用上述功能的 logcat

05-13 14:38:03.149: INFO/Time Class(301): Time value in millisecinds 1368436083157

如果您对毫秒值有任何疑问。请在此处查看

编辑:我用来演示代码 IST(+05:30) 的时区,所以如果您检查milliseconds日志中提到的与日志中的时间匹配,您可能会根据您的系统时区获得不同的值

编辑:这是一种简单的方法。但是如果您需要时区或任何其他详细信息,我认为这还不够 另请参阅使用 android api 支持的这种方法

于 2013-05-13T08:51:34.253 回答
24

问题是System. currentTimeMillis();返回从 1970-01-01T00:00:00Z 开始的毫秒数,但new Date()给出了当前本地时间。从 Calendar 类中添加ZONE_OFFSET 和 DST_OFFSET可为您提供 UTC 时间。

Calendar rightNow = Calendar.getInstance();

// offset to add since we're not UTC

long offset = rightNow.get(Calendar.ZONE_OFFSET) +
    rightNow.get(Calendar.DST_OFFSET);

long sinceMidnight = (rightNow.getTimeInMillis() + offset) %
    (24 * 60 * 60 * 1000);

System.out.println(sinceMidnight + " milliseconds since midnight");
于 2013-05-13T07:38:15.353 回答
3

尝试这个

  Calendar c = Calendar.getInstance(); 
  int mseconds = c.get(Calendar.MILLISECOND)

另一种选择是

 Calendar rightNow = Calendar.getInstance();

 long offset = rightNow.get(Calendar.ZONE_OFFSET) +
        rightNow.get(Calendar.DST_OFFSET);
 long sinceMid = (rightNow.getTimeInMils() + offset) %
       (24 * 60 * 60 * 1000);

  System.out.println(sinceMid + " milliseconds since midnight");
于 2013-05-13T07:38:56.643 回答
0
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
int mSec = calendar.get(Calendar.MILLISECOND);
于 2013-05-13T07:39:39.767 回答