开发中常用的Calendar方法
开发中我们常用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);
}