java Date操作日期相关方法
获取当天日期
获取10分钟/年/月/天/小时后的时间
Date转化为毫秒数
Date转字符串
字符串转Date
计算两个日期的毫秒数
比较时间大小
将日期转换为周几
得到二个日期间的间隔天数
1.获取当天日期
Date date = new Date();
DateFormat df1 = DateFormat.getDateInstance();//日期格式,精确到日
System.out.println(df1.format(date));
DateFormat df2 = DateFormat.getDateTimeInstance();//可以精确到时分秒
System.out.println(df2.format(date));
DateFormat df3 = DateFormat.getTimeInstance();//只显示出时分秒
System.out.println(df3.format(date));
DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL); //显示日期,周,上下午,时间(精确到秒)
System.out.println(df4.format(date));
DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG); //显示日期,上下午,时间(精确到秒)
System.out.println(df5.format(date));
DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); //显示日期,上下午,时间(精确到分)
System.out.println(df6.format(date));
DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM); //显示日期,时间(精确到分)
System.out.println(df7.format(date));
2019-12-26
2019-12-26 13:49:35
13:49:35
2019年12月26日 星期四 下午01时49分35秒 CST
2019年12月26日 下午01时49分35秒
19-12-26 下午1:49
2019-12-26 13:49:35
2.获取10分钟后的时间。
Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MINUTE, 10);
Date d2 = cal.getTime();
System.out.println("10分钟之后时间" + df2.format(d2));
获取10年之后的日期:cal.add(Calendar.YEAR, 10);
获取10个月之后的日期:cal.add(Calendar.MONTH, 10);
获取10天之后的日期:cal.add(Calendar.DATE, 10);
获取10小时之后的日期:cal.add(Calendar.HOUR, 10);
3.Date转化为毫秒。
long systime = new Date().getTime();
4.字符串转Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String start5 = "2019-10-16 14:12:13";
String end5 = "2019-10-16 14:14:13";
Date start6 = sdf.parse(start5);
Date end6 = sdf.parse(end5);
System.out.println( "转换成date类型 "+ start6);
System.out.println( "转换成date类型 "+ end6);
转换成date类型 Wed Oct 16 14:12:13 CST 2019
转换成date类型 Wed Oct 16 14:14:13 CST 2019
5.Date转字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String str = sdf.format(date);
System.out.println( "Date转字符串 "+str);
Date转字符串 2019-12-26 14:21:23
6.计算两个日期的毫秒数
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String start5 = "2019-10-16 14:12:13";
String end5 = "2019-10-16 14:12:18";
Date start6 = sdf.parse(start5);
Date end6 = sdf.parse(end5);
System.out.println("计算两个日期的毫秒 " + calculateSeconds(start6,end6));
/**
* 计算两个日期的毫秒
* @param start
* @param end
* @return
*/
public static int calculateSeconds(Date start, Date end) {
long startTimeMilliseconds = start.getTime();
long endTimeMilliseconds = end.getTime();
return (int) (endTimeMilliseconds - startTimeMilliseconds);
}
计算两个日期的毫秒 5000
7.比较时间大小
String start5 = "2019-10-16 14:12:13";
String end5 = "2019-11-16 14:12:18";
System.out.println("比较时间大小 " + dateTimeComparison(start5,end5));
/**
* 比较时间大小 start
start:1571206320000
end:1573884720000
比较时间大小 true
8.将日期转换为周几
String start = "2019-10-16 14:12:13";
System.out.println("将日期转换为周几 " + dateToWeek(start));
/**
* 将日期转换为周几
* @param datetime
* @return
*/
public static String dateToWeek(String datetime) {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
Calendar cal = Calendar.getInstance(); // 获得一个日历
Date datet = null;
try {
datet = f.parse(datetime);
cal.setTime(datet);
} catch (ParseException e) {
e.printStackTrace();
}
int w = cal.get(Calendar.DAY_OF_WEEK) - 1; // 指示一个星期中的某天。
if (w < 0)
w = 0;
return weekDays[w];
}
将日期转换为周几 星期三
9.得到二个日期间的间隔天数
String start = "2019-11-20 14:12:13";
String end = "2019-10-16 14:12:18";
System.out.println("得到二个日期间的间隔天数 " + getTwoDay(start,end));
/**
* 得到二个日期间的间隔天数
*/
public static String getTwoDay(String sj1, String sj2) {
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
long day = 0;
try {
java.util.Date date = myFormatter.parse(sj1);
java.util.Date mydate = myFormatter.parse(sj2);
day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
} catch (Exception e) {
return "";
}
return day + "";
}
得到二个日期间的间隔天数 35
注意,这里开始时间比结束时间大返回的正数,开始时间比结束时间小会返回负数。