Java中日期时间总结
2020-04-28 本文已影响0人
Geroge1226
介绍
【前言】:在项目开发中会处理时间的各种场景,现就 java 的jdk自带日期时间各种操作,部分列举如下,分为JDK8之前版本和JDK8两部分。
一、【JDK 1.8之前】日期时间package java.util
包下
1.1 取时间
-
Calendar方式
Calendar cal = Calendar.getInstance();
// 直接获取全部
System.out.println(format1.format(cal.getTime()));
// 也可以获取各个分量
int Y, m, d, h, M, s;
Y = cal.get(Calendar.YEAR);
m = cal.get(Calendar.MONTH); // 注意这里是从0开始数的,要加1
d = cal.get(Calendar.DATE);
h = cal.get(Calendar.HOUR_OF_DAY); // 此处为24小时制;直接写HOUR就是12小时制
M = cal.get(Calendar.MINUTE);
s = cal.get(Calendar.SECOND);
System.out.println(Y + " 年 " + (m + 1) + " 月 " + d + " 日 " + h + " 时 " + M + " 分 " + s + " 秒.");
- Calendar常量说明
Calendar.YEAR——年份
Calendar.MONTH——月份,从0开始,0-11
Calendar.DATE——日期
Calendar.DAY_OF_MONTH——本月的日期,和DATE相同
Calendar.HOUR——12小时制的小时
Calendar.HOUR_OF_DAY——24小时制的小时
Calendar.MINUTE——分钟
Calendar.SECOND——秒
Calendar.DAY_OF_WEEK——星期几,从星期日开始,1-7,1代表星期日,2代表星期一,和Date有点差别
-
Date方式
Date date = new Date();
System.out.println(format1.format(date));
// Java标准格式输出时间
System.out.println(date.toString());
注
:
-
Date方式大部分方法均已过期,不推荐使用。
date方法 - 标准时间格式 Tue Apr 28 10:38:47 CST 2020
中央时区2020年4月28日10时38分47秒星期二
CST: Central Standard Time 中央时区
1.2 String转为Date格式
与format相反的操作为parse
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
String str1 = "2019-05-10";
String str2 = "2019-04-29";
Date date1 = null, date2 = null;
try {
date1 = df1.parse(str1);
date2 = df1.parse(str2);
} catch (Exception e) {
System.out.println("Unparseable using " + df1);
}
1.3 时间比较
- 比较long类型的时间戳(1970年1月1日午夜十二时起已经过去的毫秒数)
public static boolean compare1(Date date1, Date date2) {
long d1 = date1.getTime();
long d2 = date2.getTime();
if (d1 > d2)
return true;
return false;
}
- 使用Date的
before
\after
\equals
方法
Boolean bef = date1.before(date2)
二、【JDK 1.8中】增加package java.time
包处理时间
image.png
处理时间
2、获取当前时间戳的几种方式
//方法 一
System.currentTimeMillis();
//方法 二
Calendar.getInstance().getTimeInMillis();
//方法 三
new Date().getTime();
注:后期会持续更新