如何在Android中获取以毫秒为单位的当前日期时间

How to get current date time in milliseconds in android

本问题已经有最佳答案,请猛点这里访问。

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

1
2
3
4
5
6
7
 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;


我想用Java来利用这个功能

1
long time= System.currentTimeMillis();

这将以毫秒模式返回当前时间。这肯定管用

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

这是我的logcat使用上述功能

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

如果您对毫秒值有任何疑问,请检查这里

编辑:时区我用来演示代码列表(+05:30),所以如果您检查日志中提到的EDOCX1[2]以匹配日志中的时间,您可能会得到基于系统时区的不同值。

编辑:这是一个简单的方法。但是如果你需要时区或任何其他细节,我认为这是不够的另请参阅使用Android API支持的此方法


问题是,System. currentTimeMillis();返回1970-01-01t00:00:00z的毫秒数,但new Date()给出了当前的本地时间。将Zone_Offset和DST_Offset添加到Calendar类中可以获得以UTC为单位的时间。

1
2
3
4
5
6
7
8
9
10
11
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");


试试这个

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

另一种选择是

1
2
3
4
5
6
7
8
 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");


1
2
3
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
int mSec = calendar.get(Calendar.MILLISECOND);