1.Date类及其常用API
Date类简介
java.util.Date 类封装日期及时间信息。
Date类的大多数用于进行时间分量计算的方法已经被Calendar取代。
获取当前系统时间
Date date = new Date();//系统的当前时间信息
System.out.println(date);
setTime和getTime方法
Date date = new Date();
long time = date.getTime();//1970/01/01至今的毫秒数
//增加一天
long t = 60 * 60 * 24 * 1000;
date.setTime(t);
2. SimpleDateFormat类
SimpleDateFormat类简介
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
SimpleDateFormat就是根据一个特定的日期格式在字符串与Date之间相互转换。
日期模式的匹配字符串:
相关的API
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//按照yyyy-MM-dd HH:mm:ss格式转换为字符串
Date date = new Date();//当前系统时间
String str = sdf.format(date);
//将String解析为Date
String time = "2014-12-02 11:12:41";
Date d = sdf.parse(time);//需要处理异常
3. Calendar类
java.util.Calendar 类用于封装日历信息,其主要作用在于其方法可以对时间分量进行运算。
Calendar是抽象类,其提供了一个工厂方法:Calendar getInstance()。该方法可以根据当前系统所在地区获取一个适当的Calendar的子类实现。
set()方法
该方法可以通过对不同的时间分量分别设置不同的值。Calendar对不同的时间分量提供了相应的常量,我们在使用set方法设置时,第一个参数就应当使用对应的常量作为时间分量。
Calendar c = Clalendar.getInstance();//表示当前时间
//设置时间
c.set(c.YEAR, 2015);//设置年为2015
c.set(c.MONTH, 4);//月份为5月(月份从0开始,0代表1月)
c.set(c.DAY_OF_MONTH, 21);//设置日为21
Date date = c.getTime();//获取时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String time = sdf.format(date);
System.out.println(time);// 2015-5-21
get()方法
该方法可以通过对不同的时间分量获取相应的值。Calendar对不同的时间分量提供了相应的常量,我们在使用get方法获取时,参数就应当使用对应的常量作为时间分量。
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);//年
int month = c.get(Calendar.MONTH)+1;//月
int day = c.get(Calendar.DAY_OF_MONTH);//日
int date = c.get(Calendar.DAY_OF_WEEK);//星期
int hour = c.get(Calendar.HOUR_OF_DAY);//时
int minute = c.get(Calendar.MINUTE);//分
int second = c.get(Calendar.SECOND);//秒
System.out.println(year+"年"+month+"月"+day+"日"+date+" "+hour+":"+minute+":"+second );
//得到星期
String[] str = {"日","一","二","三","四","五","六"};
int date1 = c.get(Calendar.DAY_OF_WEEK)-1;
System.out.println("周"+str[date1]);
//得到一年当中的第几天
int date2 = c.get(Calendar.DAY_OF_YEAR);
System.out.println("今年的第"+date2+"天");
//获取年,月,日的最大值
int date3 = c.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(date3);
add()方法
Calendar还允许我们使用统一的方式来对某个时间分量的值进行计算。我们需要使用方法 void add(int field,int amount)。该方法可以为某个时间分量的值加上给定的值,若想减去给定的值,那么传入的值需要是负数即可。并且计算后会自动进行相应的进位,例如若当前为月底,那么加一天后,为下个月的月初,而月就会进位。
对时间的加减设置
Calendar c = Calendar.getInstance();
//查看3年后四个月零100天是哪天?
c.add(Calendar.YEAR, 3);
c.add(Calendar.MONTH, 4);
c.add(Calendar.DAY_OF_YEAR, 100);