System.currentTimeMillis()以小时为单位给出错误的时间

时间:2014-07-22 17:45:30

标签: java

我正在尝试让我的应用程序显示时间,为此我需要获得android的分钟和小时。我正在尝试使用currentTimeMillis(),但我的工作时间错误。这是我使用系统时钟的小时和分钟代码。

    int defday = (int) (System.currentTimeMillis() / (1000 * 60 * 60 * 24));
    int defhour = (int) (System.currentTimeMillis() - (defday * 1000 * 60 * 60 * 24))
            / (1000 * 60 * 60);
    int defmin = (int) (System.currentTimeMillis()
            - (defhour * 1000 * 60 * 60) - (defday * 1000 * 60 * 60 * 24))
            / (1000 * 60);

运行应用后,时间显示时间为5:36,即使当前时间为1:36。我做错了什么?

1 个答案:

答案 0 :(得分:3)

创建一个Calendar对象:

long millis=System.currentTimeMillis();
Calendar c=Calendar.getInstance();
c.setTimeInMillis(millis);

在此之后,您可以从Calendar对象中获取字段:

int hours=c.get(Calendar.HOUR);
int minutes=c.get(Calendar.MINUTE);

然后:

int MinutesHours =(小时* 60)+分钟; 要返回,您可以在日历中使用set方法:

Calendar c=Calendar.getInstance();
c.set(Calendar.MINUTE,minutes);
long millis=c.getTimeInMillis();

<强>参考

How to measure the a time-span in seconds using System.currentTimeMillis()?

currentTimeMillis() to Years, days, and minutes, and backwords. (hard)