Date类获取当前时间以及格式化输出 

import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;	
public static void demoDate() {
		Date date = new Date();
		DateFormat now1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		DateFormat now2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		DateFormat now3 = new SimpleDateFormat("北京时间:yyyy/MM/dd HH:mm:ss");
		
		System.out.println(date); //Mon Oct 15 19:17:29 CST 2018
		System.out.println(now1.format(date));//2018-10-15 19:17:29
		System.out.println(now2.format(date));//2018/10/15 19:17:29
		System.out.println(now3.format(date));//北京时间:2018/10/15 19:17:29
		
	}
		

大小比较

方法一:

java.util.Date类实现了Comparable接口,可以直接调用Date的compareTo()方法来比较大小

String beginTime = "2018-07-28 14:42:32";
String endTime = "2018-07-29 12:26:32";
 
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
try {
    Date date1 = format.parse(beginTime);
    Date date2 = format.parse(endTime);
    
    int compareTo = date1.compareTo(date2);
    
    System.out.println(compareTo);
    
} catch (ParseException e) {
    e.printStackTrace();
}
compareTo()方法的返回值,date1小于date2返回-1,date1大于date2返回1,相等返回0,

注意:String.compareTo() 方法,返回值不一定是1,-1,所以判断是按>0,<0来判断

accroading to :String.compareTo源码

 

 

方法二:

通过Date自带的before()或者after()方法比较

String beginTime = "2018-07-28 14:42:32";
String endTime = "2018-07-29 12:26:32";
 
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
try {
    Date date1 = format.parse(beginTime);
    Date date2 = format.parse(endTime);
    
    boolean before = date1.before(date2);
    
    System.out.println(before);
    
} catch (ParseException e) {
    e.printStackTrace();
}
before()或者after()方法的返回值为boolean类型

方法三:

通过调用Date的getTime()方法获取到毫秒数来进行比较(获取当前时间用System.currentTime())

String beginTime = "2018-07-28 14:42:32";
String endTime = "2018-07-29 12:26:32";
 
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
try {
    Date date1 = format.parse(beginTime);
    Date date2 = format.parse(endTime);
    
    long beginMillisecond = date1.getTime();
    long endMillisecond = date2.getTime();
    
    System.out.println(beginMillisecond > endMillisecond);
    
} catch (ParseException e) {
    e.printStackTrace();
}
 

获取当前时间1周后时间,两月前?

 Calendar c = Calendar.getInstance();
         //30天之前
            c.setTime(new Date());
            c.add(Calendar.MONTH, -1);
            Date m = c.getTime();