2

我想知道如何循环通过日期/时间或任何类型的变量以每 30 分钟从 00:00 到 24:00?

因此,我需要一个以 24HR 格式(01:00、09:00)显示时间的变量,并且每次循环通过它时,将时间增加 30 分钟?然后我需要在字符串中使用这个值。

时间需要从上午 00:00 开始,到 24:00 结束。

有什么想法我应该怎么做?

output should be like this - 00:00 00:30 01:00 ....24:00
4

4 回答 4

15

可能有点过度杀戮,但它会自动滚动并允许使用DateFormat

DateFormat df = new SimpleDateFormat("HH:mm");
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
int startDate = cal.get(Calendar.DATE);
while (cal.get(Calendar.DATE) == startDate) {
    System.out.println(df.format(cal.getTime()));
    cal.add(Calendar.MINUTE, 30);
}

你不能24:00像现在这样00:00...

于 2013-01-10T06:11:48.213 回答
3

尝试使用此代码

private void displayTimeSlots() {

    String timeValue = "T00:00:4.896+05:30";
    SimpleDateFormat sdf = new SimpleDateFormat("'T'hh:mm:ss.SSS");
    try {
        Calendar startCalendar = Calendar.getInstance();
        startCalendar.setTime(sdf.parse(timeValue));

        if (startCalendar.get(Calendar.MINUTE) < 30) {
            startCalendar.set(Calendar.MINUTE, 30);
        } else {
            startCalendar.add(Calendar.MINUTE, 30); // overstep hour and clear minutes
            startCalendar.clear(Calendar.MINUTE);
        }

        Calendar endCalendar = Calendar.getInstance();
        endCalendar.setTime(startCalendar.getTime());

        // if you want dates for whole next day, uncomment next line
        //endCalendar.add(Calendar.DAY_OF_YEAR, 1);
        endCalendar.add(Calendar.HOUR_OF_DAY, 24 - startCalendar.get(Calendar.HOUR_OF_DAY));

        endCalendar.clear(Calendar.MINUTE);
        endCalendar.clear(Calendar.SECOND);
        endCalendar.clear(Calendar.MILLISECOND);

        SimpleDateFormat slotTime = new SimpleDateFormat("hh:mm a");
        while (endCalendar.after(startCalendar)) {

            startCalendar.add(Calendar.MINUTE, 30);
            String Timeslots = slotTime.format(startCalendar.getTime());


            Log.e("DATE", Timeslots);
        }

    } catch (ParseException e) {
        // date in wrong format
    }
}
于 2017-07-18T14:58:29.257 回答
2
于 2017-07-19T01:31:39.617 回答
1

尝试这个 -

Calendar instance = Calendar.getInstance();
instance.setTime(new SimpleDateFormat("hh:mm:ss a").parse("00:00:00 AM"));
System.out.println(instance.getTime());
int i=1;
while(i++!=49){
     instance.add(Calendar.MINUTE, 30);
     System.out.println(instance.getTime());
}
于 2013-01-10T06:11:27.977 回答