如何获取当前date时间以毫秒为单位

我试图用名称保存我的文件作为当前date和时间(以毫秒为单位)。 同时阅读文件,我想读取最新的一个。这里是代码

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; 

我想你可以使用这个

 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,所以如果你检查代码中提到的milliseconds 其他时区的日志中的时间匹配指定IST区域。

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

问题在于System. currentTimeMillis(); 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"); 

尝试这个

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

另一种select是

  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"); 
 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); int mSec = calendar.get(Calendar.MILLISECOND);