如何在android中获取当前日期时间(以毫秒为单位)

Sup*_*eet 101 android

我试图用名称保存我的文件作为当前日期和时间(以毫秒为单位).在阅读文件时,我想阅读最新版本.这是代码

 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;
Run Code Online (Sandbox Code Playgroud)

edw*_*win 269

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

long time= System.currentTimeMillis();
Run Code Online (Sandbox Code Playgroud)

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

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

这是我的logcat使用上面的函数

05-13 14:38:03.149: INFO/Time Class(301): Time value in millisecinds 1368436083157
Run Code Online (Sandbox Code Playgroud)

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

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

编辑:这是一个简单的方法.但如果你需要时区或任何其他细节我认为这还不够 也参见使用android api支持这种方法


Sun*_*mar 21

问题是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");
Run Code Online (Sandbox Code Playgroud)