工作记录:需求获取前一天的时间例如 2018-09-04 00:00:00 ~ 2018-09-05 00:00:00
Calendar now = Calendar.getInstance();
now.set(Calendar.HOUR_OF_DAY, 23);//设置小时数,24小时制
now.set(Calendar.MINUTE, 0);
now.set(Calendar.SECOND, 0);
Date nowDate = now.getTime(); //当天时间
String test1_1 = DateUtils.converToStringDate(nowDate, "yyyy-MM-dd HH:mm:ss");
String test1_2 = DateUtils.converToStringDate(nowDate, "yyyy-MM-dd hh:mm:ss");
System.out.println("24小时制_HOUR_OF_DAY_未格式--" + nowDate);//24制小时输出
System.out.println("24小时制_HOUR_OF_DAY_格式:yyyy-MM-dd HH:mm:ss--" + test1_1);//24制小时输出
System.out.println("24小时制_HOUR_OF_DAY_格式:yyyy-MM-dd hh:mm:ss--" + test1_2);//12制小时输出
now.set(Calendar.DATE, now.get(Calendar.DATE) - 1);
Date lastDay = now.getTime(); //前一天时间
Calendar now1 = Calendar.getInstance();
now1.set(Calendar.DATE, now.get(Calendar.DATE) - 1);
now1.set(Calendar.HOUR,22);//设置小时数12小时制,需要分上下午,now1.get(now1.set(Calendar.HOUR,0))上午输出0,12点之后输出12
now1.set(Calendar.MINUTE, 0);
now1.set(Calendar.SECOND, 0);
Date nowDate1 = now1.getTime(); //当天时间
String test2_1 = DateUtils.converToStringDate(nowDate1, "yyyy-MM-dd HH:mm:ss");
String test2_2 = DateUtils.converToStringDate(nowDate1, "yyyy-MM-dd hh:mm:ss");
System.out.println(".........................");
System.out.println("12小时制_HOUR_未格式--" + nowDate1);//12制小时输出 ,上午运行时24小时制
System.out.println("12小时制_HOUR_格式:yyyy-MM-dd HH:mm:ss--" + test2_1);//12制小时输出,上午运行时24小时制
System.out.println("12小时制_HOUR_格式:yyyy-MM-dd hh:mm:ss--" + test2_2);//12制小时输出
输出结果:
总结Calendar.HOUR和Calendar.HOUR_OF_DAY分别获取12小时制和24小时制的时间,如果设置set(Calendar.HOUR,22)则输出结果也要分上下午,如:上午输出2018-09-04 22:00:00 下午输出2018-09-04 10:00:00
参考:https://blog.csdn.net/whzhaochao/article/details/40186805