使用日历在每个午夜重置计算的步数

Using Calendar to reset counted steps every midnight

我正在构建一个 android 应用程序,用于计算用户的步数。目的是计算从前一天午夜到每天午夜的步数。这就是我设置 Calendar 对象的方式。这确实是一个 Java 问题。

Calendar cal = Calendar.getInstance();
    Date now = new Date();
    cal.setTime(now);
    long endTime = cal.getTimeInMillis();
    cal.add(Calendar.DAY_OF_WEEK, -1);
    long startTime = cal.getTimeInMillis();

    SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
    Log.i(TAG, "Range Start: " + dateFormat.format(startTime));
    Log.i(TAG, "Range End: " + dateFormat.format(endTime));

输出是

Range Start: 2015.05.14 09:25:13
Range End: 2015.05.15 09:25:13

所以你可以看到输出。我计算那段时间之间的步数。如果我在几分钟后输入,日期格式将类似于

Range Start: 2015.05.14 09:27:07
Range End: 2015.05.15 09:27:07

我希望它像

 Range Start: 2015.05.14 00:00:00
 Range End: 2015.05.15 00:00:00

谢谢。

首先你必须得到今天的日期:

Calendar date = new GregorianCalendar();

将此日期设置为今晚(并保存!):

date.set(Calendar.HOUR_OF_DAY, 0);
date.set(Calendar.MINUTE, 0);
date.set(Calendar.SECOND, 0);
date.set(Calendar.MILLISECOND, 0);

当你有午夜时,只需将 +1 添加到明天的日期

date.add(Calendar.DAY_OF_MONTH, 1);