需求:定义一个类,使用一个字段来表示年龄.
public class Employee{
private java.util.Date bornDate;
private java.util.Date hireDate//入职时间
}
在系统中存储的是员工的基本的信息,包括了员工的年龄,此时使用Integer/int类型来表示年龄是不合理的,难道每年都得修改系统中员工的年龄递增1.
需求:如何计算一个员工的工龄.
——>怎么来表示时间/日期类型.
日期相关类:
Date类: java.util.Date类,不是java.sql.Date. 类 Date 表示特定的瞬间,精确到毫秒.
DateFormat/SimpleDateFormat类:
Calendar类:
Java8中重新为日期定义了新的API.
Date类中的大量方法都已经过时了,过时不代表不存在,依然可以使用,只不过不建议使用,官方建议我们使用Calendar类.
Date date = new Date();
日期格式化操作:
DateFormat:可以完成日期的格式化操作.
格式化(format): Date类型对象——->String类型: String format(Date date)
解析(parse): String类型时间——>Date类型 : Date parse(String source)
DateFormar转换的格式是固定的,我想根据自己的风格来做转换.
自定义格式,比如:2016-04-16 15:50:48
比如:2016/04/16 15:50:48
SimpleDateFormat类:是DateFormat的子类,支持自定义格式模式.
//自定义日期格式
SimpleDateFormat sdf = new SimpleDateFormat("YYYY:MM:dd");
String data = sdf.format(new Date());
System.out.println(data);
//解析,使用什么风格格式化的,必须使用相同风格解析回去!!!
Date parse = sdf.parse(data);
System.out.println(parse);
//查询最近一周的天数
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH, 1);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
Date endTime = c.getTime();
c.add(Calendar.DAY_OF_MONTH, -7);
Date beginTime = c.getTime();
System.out.println(beginTime);
System.out.println(endTime);