JAVA中日期时间的使用
主要记录工作中经常碰到的日期相关操作,本文包含的内容:
- 日期的类型与转换
- 日期的比较
- 获取当前日期
一、日期的类型与转换
日期类型
- 日期型
- 时间戳
时间戳类型是指Long类型,代表1970年1月1日0时0分0秒开始到该对应日期所经过的毫秒数
日期转换为字符串
字符串格式
格式 | 变量定义 | 示例值 |
---|---|---|
“yyyy-MM-dd HH:mm:ss” | SPLIT_PATTERN_DATETIME | 2017-09-01 09:45:10 |
“yyyy-MM-dd” | SPLIT_PATTERN_DATE | 2017-09-01 |
“yyyy/MM/dd” | SPLIT_PATTERN_DATE2 | 2017/09/01 |
“yyyyMMdd” | TIGHT_PATTERN_DATE | 20170901 |
“yyyy-MM” | SPLIT_PATTERN_MONTH | 2017-09 |
“yyyyMMddHHmmss” | TIGHT_PATTERN_DATETIME | 20170901094510 |
“HH:mm:ss” | SPLIT_PATTERN_TIME | 09:45:10 |
“HHmmss” | TIGHT_PATTERN_TIME | 094510 |
代码示例
Calendar calendar = Calendar.getInstance();
Date date1 = calendar.getTime();// 获取系统当前日期
System.out.println(formate(date1, SPLIT_PATTERN_DATETIME));// 2017-09-01 09:45:10
format函数
// format函数定义
public static String formate(Date date, String pattern) {
if(date==null){
return "";
}
return new SimpleDateFormat(pattern).format(date);
}
字符串转换为日期
String dateStr = "20170901094510";
Date date3 = parse(dateStr,TIGHT_PATTERN_DATETIME); // pattern 要与 dateStr对应上
System.out.println(formate(date3, SPLIT_PATTERN_DATETIME));
parse函数
public static Date parse(String date, String pattern) {
try {
return new SimpleDateFormat(pattern).parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
时间戳转换为日期
Long timestamp = Calendar.getInstance().getTimeInMillis();//1504230310000
Date date4 = new Date(timestamp);
System.out.println(date4);//Fri Sep 01 09:45:10 CST 2017
System.out.println(formate(date4, SPLIT_PATTERN_DATETIME));//2017-09-01 09:45:10
小结:
- 利用java.text.SimpleDateFormat 可以方便的对日期及字符串进行相互转换
- 获取时间戳的方式:
Long timestamp1 = new Date().getTime();
Long timestamp2 = Calendar.getInstance().getTimeInMillis();
- 获取日期
Date date4 = new Date(timestamp);//时间戳转换为日期
Date date = new Date();//这样是用当前时间创建了日期
二、日期的比较
Date date3 = parse("20170901094510",TIGHT_PATTERN_DATETIME);
Long timestamp = Calendar.getInstance().getTimeInMillis();
Date date4 = new Date(timestamp);
/*date3先于date4*/
System.out.println(date3.before(date4));// true
System.out.println(date3.equals(date4));// false
System.out.println(date4.after(date3));// true
System.out.println(date4.compareTo(date3)); // 1
三、获取当前日期
Calendar rightNow = Calendar.getInstance();
Date date1 = rightNow.getTime();
Date date2 = new Date();
总结
以上记录了日常日期相关的操作,总结才能对使用到的知识更加熟练。
文章参考了:http://blog.csdn.net/jediael_lu/article/details/43852043