这里只是简单记录一下个人认为比较常用的一些方法,统一导包:
import java.text.ParseException; // 解析字符串时需要抛出的异常处理
import java.text.SimpleDateFormat; // 格式化时间需要
import java.util.Date;
目录
1.获取本地时间:
Date date = new Date();
// public String toString()
// Converts this Date object to a String of the form: 即将日期对象转换成特定格式的字符串
// dow mon dd hh:mm:ss zzz yyyy
// Sat Apr 20 01:29:45 CST 2019
System.out.println(date.toString());
System.out.println(date); // 直接输出date也一样
2.格式化时间
Date date1 = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(); // 采用默认的格式
System.out.println(sdf.format(date1)); // 19-4-20 上午1:37
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd E HH:mm:ss"); // 设置输出格式
System.out.println(sdf1.format(date1)); // 2019-04-20 星期六 01:37:12
3.日期转字符串
Date date2 = new Date();
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMdd");
String string = sdf2.format(date2);
System.out.println(string); // 20190420
4.字符串转日期
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyyMMdd");
String string1 = "20190420";
Date date3 = sdf3.parse(string1);
System.out.println(date3); // Sat Apr 20 00:00:00 CST 2019
String string2 = sdf2.format(date3);
System.out.println(string2); // 20190420
// 上面方法也可简化成这样
Date date31 = new SimpleDateFormat("yyyy/MM/dd").parse("2019/04/19"); // 字符串解析字符串,返回为日期对象
String string31 = new SimpleDateFormat("yyyy年MM月dd日").format(date31); // 字符串格式化日期,返回为字符串
System.out.println(string31); // 2019年04月19日
5.求两个日期之间相隔的天数
/*
* 先讲一下思路:求得两个时间到1970的毫秒数,然后相减,得到间隔毫秒数,然后再将毫秒转化为天数
*
* 用到的方法介绍:
* public long getTime()
* Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this Date object
*
*/
Date date4 = new Date();
System.out.println("January 1, 1970 00:00:00到现在的毫秒数:"+date.getTime()); // 即为时间戳
// 按照特定格式解析时间字符串为日期对象
SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd");
Date beginDate = sdf4.parse("2019-3-20");
Date endDate = sdf4.parse("2019-4-20");
// 计算
long day = (endDate.getTime() - beginDate.getTime()) / (24 * 60 * 60 * 1000);
System.out.println("相隔的天数=" + day);
end……