Java之时间相加减和其他用法
开发工具与关键技术:MyEclipse 10,java
作者:刘东标
撰写时间:2019-07-02
Java提供了Date类来处理日期、时间(此处的Date是指java.util包下的Date类,而不 是java.sql包下的Date类),Date对象既包含日期,也包含时间。Date类从JDK1.0起 就开始存在了,因为它历史悠久,所以它的大部分构造器、方法都已经过时,不再推 荐使用了。
Calendar类
由于Date类过于古老,许多的构造器和方法都已经过时。Java推荐使用Calendar来完 成时间计算等操作。
package com.gx.commonclass;
import java.util.Calendar;
import java.util.Date;
/**
* Calendar类
*
* @author LDB
*
*/
public class CalendarClassDemo {
public static void main(String[] args) {
// 使用默认时区和语言环境获得一个日历
Calendar cal = Calendar.getInstance();
System.out.println("---------获取时间----------");
// 获取时间
System.out.println("年:" + cal.get(Calendar.YEAR));
System.out.println("月:" + (cal.get(Calendar.MONTH) + 1)); // 月是从0开始(0~11),所以需要+1
System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH));
System.out.println("时:" + cal.get(Calendar.HOUR_OF_DAY));
System.out.println("分:" + cal.get(Calendar.MINUTE));
System.out.println("秒:" + cal.get(Calendar.SECOND));
System.out.println("---------设置时间----------");
// 设置时间
// 1、使用set一次设置
// cal.set(year, month, date, hourOfDay, minute, second);//月是从0开始(0~11)
cal.set(2019, 4, 4, 4, 4, 4);
System.out.println(cal.getTime());
//2、单个字段一一设置
cal.set(Calendar.YEAR, 2019);
cal.set(Calendar.MONTH, Calendar.MAY);//使用英文的十二个月的单词
cal.set(Calendar.DAY_OF_MONTH, 4);
cal.set(Calendar.HOUR_OF_DAY, 4);
cal.set(Calendar.MINUTE, 4);
cal.set(Calendar.SECOND, 4);
System.out.println(cal.getTime());
//
System.out.println("---------时间计算----------");
//时间计算
System.out.println("----add----");
//add方法 //May五月份
cal.add(Calendar.MONTH, 5);//+5个月
System.out.println(cal.getTime());
cal.add(Calendar.MONTH, -5);
System.out.println(cal.getTime());
//
System.out.println("----roll----");
//roll方法
cal.roll(Calendar.MONTH, 5);//+5个月
System.out.println(cal.getTime());
cal.roll(Calendar.MONTH, -5);
System.out.println(cal.getTime());
//
//add方法会产生其他相关时间属性的连动变化
//roll方法只是对相应时间属性的域内做变化
System.out.println("----add 和 roll的区别----");
Calendar calAdd = Calendar.getInstance();
calAdd.add(Calendar.MONTH, 9);
System.out.println(calAdd.getTime());
//
Calendar calRoll = Calendar.getInstance();
calRoll.roll(Calendar.MONTH, 9);
System.out.println(calRoll.getTime());
//
//Calendar和Date的相互转换
System.out.println("Date和Calendar 的相互转换");
//Calendar---> Date
Date date1=cal.getTime();
System.out.println(date1);
//Date--->Calendar
Calendar cal2=Calendar.getInstance();
cal2.setTime(date1);
}
}