开发中我们常用Date和Calendar类, Date类从JDK1.0起就已经存在了,经过不停的迭代更新,导致它的大部分构造器,方法都已经过时淘汰,不再推荐使用。因此Java推荐使用Calendar来完成时间计算等操作。
本篇文章,通过Springboot的@Test 方法来记录一些开发中常用Calendar方法。(因为自己也很容易忘),需要的时候进行查看。希望也能帮助需要的人。
@Test public void test1_4() { /** * 按时区获取当前时间 */ GregorianCalendar ca = new GregorianCalendar(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); format.setTimeZone(TimeZone.getTimeZone("Chile/Continental")); //TimeZone.getTimeZone()传递一个id参数获取该地区的时间 //智利时区 Chile/Continental String time = format.format(ca.getTime()); System.out.println(time); } @Test public void test1_5() { /** * 获取系统时间 */ GregorianCalendar ca = new GregorianCalendar(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = format.format(ca.getTime()); System.out.println(time); } @Test public void test1_6() throws ParseException { /** * 获取系统时间 TimeStamp */ GregorianCalendar ca = new GregorianCalendar(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(new Timestamp(format.parse(format.format(ca.getTime())).getTime())); } @Test public void test1_7() { /** * 获取系统时间 TimeStamp */ Date date = new Date(); DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String nowTime = format.format(date); Timestamp buydate = Timestamp.valueOf(nowTime); System.out.println(buydate); } @Test public void test1_8() { /** * 获取指定的日期 以天为单位 * Timestamp 类型 * 比如今天24号 减一就是 23号 */ String formatType = "yyyy-MM-dd HH:mm:ss"; String space = "-1"; Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.add(Calendar.DATE,Integer.valueOf(space)); System.out.println(Timestamp.valueOf(new SimpleDateFormat(formatType).format(calendar.getTime()))); } @Test public void test1_9() { /** * 获取指定的日期 以月为单位 * Timestamp 类型 * 比如今天2月 减2就是上月是12月 */ String formatType = "yyyy-MM-dd HH:mm:ss"; String space = "-2"; Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.add(Calendar.MONTH,Integer.valueOf(space)); System.out.println(Timestamp.valueOf(new SimpleDateFormat(formatType).format(calendar.getTime()))); } @Test public void test1_10() { /** * 获取年月日日期 */ GregorianCalendar ca = new GregorianCalendar(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String time = format.format(ca.getTime()); System.out.println(time); } @Test public void test1_11() { /** * 获取当天最后时间last */ GregorianCalendar ca = new GregorianCalendar(); ca.set(ca.get(Calendar.YEAR),ca.get(Calendar.MONTH),ca.get(Calendar.DATE),23,59,59); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateLast = format.format(ca.getTime()); System.out.println(dateLast); } @Test public void test1_12(){ /** * 获取当天最开始的时间 */ GregorianCalendar ca = new GregorianCalendar(); ca.set(ca.get(Calendar.YEAR),ca.get(Calendar.MONTH),ca.get(Calendar.DATE),0,0,0); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateFirst = format.format(ca.getTime()); System.out.println(dateFirst); } @Test public void test1_13(){ /** * 获取系统昨天日期 * 例如今天24号,昨天23号 */ Calendar ca = Calendar.getInstance(); ca.add(Calendar.DATE ,-1); String yesterDay = new SimpleDateFormat("yyyy-MM-dd").format(ca.getTime()); System.out.println(yesterDay); } @Test public void test1_14(){ /** * 获取系统前天日期 * 例如今天24号,前天22号 */ Calendar ca = Calendar.getInstance(); ca.add(Calendar.DATE,-2); String theDayBeforeYesterDay = new SimpleDateFormat("yyyy-MM-dd").format(ca.getTime()); System.out.println(theDayBeforeYesterDay); } @Test public void test1_15(){ /** * 获取系统明天天日期 * 例如今天24号,明天25号 */ Calendar ca = Calendar.getInstance(); ca.add(Calendar.DATE,+1); String tomorrow = new SimpleDateFormat("yyyy-MM-dd").format(ca.getTime()); System.out.println(tomorrow); } @Test public void test1_16(){ /** * 获取当月的第一天 */ Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_MONTH,1); //即当月的第一天 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String first = format.format(ca.getTime()); System.out.println(first); } @Test public void test1_17(){ /** * 获取当月的最后一天 */ Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_MONTH,ca.getActualMaximum(Calendar.DAY_OF_MONTH)); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String last = format.format(ca.getTime()); System.out.println(last); }