package com.fjut.util; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 时间工具类 * @author LGX * */ public class DateUtil { public static int getAgeByBirth(Date birthday) { //Calendar:日历 /*从Calendar对象中或得一个Date对象*/ Calendar cal = Calendar.getInstance(); /*把出生日期放入Calendar类型的bir对象中,进行Calendar和Date类型进行转换*/ Calendar bir = Calendar.getInstance(); bir.setTime(birthday); /*如果生日大于当前日期,则抛出异常:出生日期不能大于当前日期*/ if(cal.before(bir)){ throw new IllegalArgumentException("The birthday is before Now,It's unbelievable"); } /*取出当前年月日*/ int yearNow = cal.get(Calendar.YEAR); int monthNow = cal.get(Calendar.MONTH); int dayNow = cal.get(Calendar.DAY_OF_MONTH); /*取出出生年月日*/ int yearBirth = bir.get(Calendar.YEAR); int monthBirth = bir.get(Calendar.MONTH); int dayBirth = bir.get(Calendar.DAY_OF_MONTH); /*大概年龄是当前年减去出生年*/ int age = yearNow - yearBirth; /*如果出当前月小与出生月,或者当前月等于出生月但是当前日小于出生日,那么年龄age就减一岁*/ if(monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)){ age--; } return age; } /** * 日期格式化 * @param date * @return */ public static String dateFormate(Date date) { SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd"); return sim.format(date); } /** * 日期格式化 * @param date * @return */ public static String dateFormate2(Date date) { SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sim.format(date); } public static void main(String[] args) throws Exception { // SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd"); // Date date = sim.parse("1997-11-16"); // int year = getAgeByBirth(date); // System.out.println(year); System.out.println(dateFormate(new Date())); } }