Date类 java.util.Date包
- 常用构造方法
- Date():系统当前时间
- Date(long time) :以标准基准时间,毫秒计生成时间
常用方法
- boolean after(Date when):测试此日期是否在指定日期(Date when)之后;
- boolean before(Date when):测试此日期是否在指定日期之前;
- int compareTo(Date anotherDate):比较两个日期顺序;(相等返回0,在anotherDate之前返回负数,在anotherDate之后返回正数);
- boolean equals(Object object):比较两个日期的相等性(相同long值);
- long getTime():得到标准基准时间的毫秒;
- void setTime(long time):设置时间;
public class DateDemo { public static void main(String[] args) { Date now = new Date(); System.out.println(now); //Date -> Long long nowLong = now.getTime(); System.out.println(nowLong); //Long -> Date Date yesterday = new Date(nowLong-24*60*60*1000); System.out.println(yesterday); Date lastYear = new Date(); long day = 24*60*60*1000; lastYear.setTime(nowLong-(365*day)); System.out.println(lastYear); System.out.println(now.after(yesterday)); System.out.println(now.before(yesterday)); System.out.println(now.compareTo(yesterday)); System.out.println(now.compareTo(now)); System.out.println(lastYear.compareTo(now)); System.out.println(lastYear.equals(now)); System.out.println(now.equals(now)); Date d1 = new Date(); Date d2 = new Date(); d1.setTime(d2.getTime()); System.out.println(d1.equals(d2)); } }
SimpleDateFormat类 java.text.SimpleDateFormat包
格式化日期:格式化字符:y :年、M:月、d:日、H:小时、m:分钟、s:秒、S:毫秒;
常用构造方法
- SimpleDateFormat(String format);
常用方法
- Date parse(String fromat):将字符串转换为Date类;
- String format(Date time):将日期按照给定format格式转换为字符串;
public class SimpleDateFormatDemo { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss"); String nowDateStr = sdf.format(new Date()); System.out.println(nowDateStr); } }
Calendar类 java.util.Calendar包
常用方法
- static Caledar getInstance():获得Calendar实例;
- set(Calendar.字段,int date):设置某个字段值;
- add(Calendar.字段,int number):为某个字段增加一个值;
- Date getTime():将Calendar转换为Date;
- setTime(Date time):将Date转换为Calendar
public class CalendarDemo { public static void main(String[] args) throws ParseException { //获得实例 Calendar calendar = Calendar.getInstance(); //设置某个字段的值 calendar.set(Calendar.YEAR, 1946); //为某个字段加上一个值 calendar.add(Calendar.YEAR, 3); //Calendar => Date Date date = calendar.getTime(); System.out.println(date); calendar.set(Calendar.MONTH,Calendar.MARCH); System.out.println(calendar.getTime()); //Date => Calendar Calendar c = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); Date d = sdf.parse("1938"); c.setTime(d); System.out.println(c.getTime()); System.out.println(DateUtil.addDay(d, -3)); System.out.println(DateUtil.format(c.getTime())); } }
时间工具类
package com.chinasofti.se.api.homework;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
ndar.MONTH, monthes);
return c1.gepublic class DateUtil {
public static final String DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";
/**
* 添加天数
* @param date1
* @param days
* @return
*/
public static Date addDay(Date date1, int days) {
Calendar c1 = Calendar.getInstance();
c1.setTime(date1);
c1.add(Calendar.DAY_OF_MONTH, days);
return c1.getTime();
}
/**
* 添加月数
* @param date1
* @param monthes
* @return
*/
public static Date addMonth(Date date1, int monthes) {
Calendar c1 = Calendar.getInstance();
c1.setTime(date1);
c1.add(CaletTime();
}
/**
* 添加年数
* @param date1
* @param years
* @return
*/
public static Date addYear(Date date1, int years) {
Calendar c1 = Calendar.getInstance();
c1.setTime(date1);
c1.add(Calendar.YEAR, years);
return c1.getTime();
}
/**
* 格式化日期
* @param date
* @return
*/
public static String formatDate(Date date){
SimpleDateFormat sdf1 = new SimpleDateFormat("今天是yyyy年MM月dd日,还记得去年今日。。。");
return sdf1.format(date);
}
public static String formatDate(Date date, String str){
SimpleDateFormat sdf1 = new SimpleDateFormat(str);
return sdf1.format(date);
}
public static String formatShort(Date date){
SimpleDateFormat sdf1 = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss");
return sdf1.format(date);
}
/**
* 解析日期
* @param dateString
* @return
* @throws ParseException
*/
public static Date parseCal(String dateString){
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
return sdf2.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static Date parseCal(String dateString, String str){
SimpleDateFormat sdf2 = new SimpleDateFormat(str);
try {
return sdf2.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
/**
* 比较两个日期
* @param date1
* @param date2
* @return
*/
public static Date compare(Date date1, Date date2){
return (date1.compareTo(date2))>0?date1:date2;
}
/**
* 计算两个日期相差的天数
* @param date1
* @param date2
* @return
*/
public static long subduction(Date date1, Date date2){
long day=24*60*60*1000;
long l = date1.getTime()-date2.getTime();
return Math.abs(l)/day;
}
}