关于日期操作
涉及其他操作的话,以后逐步完善
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
//获取当前时间
System.out.println("获取当前日期date:" + date);
//获取当前年月日时分秒
int yearNum = calendar.get(Calendar.YEAR);
//获取月份从0开始计算,不是从1开始
int monthNum = calendar.get(Calendar.MONTH);
int dateNum = calendar.get(Calendar.DATE);
int hourNum = calendar.get(Calendar.HOUR);
int minuteNum = calendar.get(Calendar.MINUTE);
int secondNum = calendar.get(Calendar.SECOND);
System.out.println(yearNum + "||" + monthNum + "||" + dateNum);
System.out.println(hourNum + "||" + minuteNum + "||" + secondNum);
//月份是从0开始计算的,如果是一月的话获得的值是0,12月值是11
calendar.add(Calendar.MONTH, 1);
//按照指定的日期格式化
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:ss:mm");
System.out.println(format.format(calendar.getTime()));
//手动设置calendar的时间
calendar.set(2000, 0, 12, 00, 01, 12);
System.out.println(calendar.getTime());
System.out.println("--------------------------------------------------------------");
/**
* add进行计算,年份也会跟着变化
* roll进行计算,年份不会跟着变化,月份只会按周期循环变化
*/
Calendar cal1 = Calendar.getInstance();
cal1.set(2003, 7, 23, 0, 0, 0); // 2003-8-23
cal1.add(Calendar.MONTH, 6); //2003-8-23 => 2004-2-23
System.out.println(cal1.getTime());
Calendar cal2 = Calendar.getInstance();
cal2.set(2003, 7, 31, 0, 0, 0); // 2003-8-31
// 因为进位到后月份改为2月,2月没有31日,自动变成29日
cal2.add(Calendar.MONTH, 6); // 2003-8-31 => 2004-2-29
System.out.println(cal2.getTime());
Calendar cal3 = Calendar.getInstance();
cal3.set(2003, 7, 23, 0, 0, 0); //2003-8-23
// MONTH字段“进位”,但YEAR字段并不增加
cal3.roll(Calendar.MONTH, 6); //2003-8-23 => 2003-2-23
System.out.println(cal3.getTime());
Calendar cal4 = Calendar.getInstance();
cal4.set(2003, 7, 31, 0, 0, 0); //2003-8-31
// MONTH字段“进位”后变成2,2月没有31日,
// YEAR字段不会改变,2003年2月只有28天
cal4.roll(Calendar.MONTH, 6); //2003-8-31 => 2003-2-28
System.out.println(cal4.getTime());
System.out.println("----------------延后计算时间----------------------------------------------");
Calendar cal5 = Calendar.getInstance();
//如果set的2月份没有31天,则自动往后推算一个月,按照三月份计算,所以打印出来是三月份
cal5.set(2020, 1, 31);
System.out.println("1.cal5:" + cal5.getTime());
}
网友评论