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();