// 文件路径 D:\ApacheServer\web_java\HelloWorld\src\com\test\TestDate.java
package com.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
public class TestDate {
public void testfun(){
Date date = null;
// 构造函数初始化当前日期和时间的对象
date = new Date();
// 或者构造指定日期时间的对象。参数为毫秒时间戳,示例时间为 2019/8/18 16:12:56
date = new Date(1566115976000L);
// date 对应的时间戳大于 after() 的参数所对应时间戳则返回 true,否则返回 false。这里返回 false
if(date.after(new Date())) {
System.out.println("date对应时间大于 after 参数对应时间");
}else {
System.out.println("date对应时间小于 after 参数对应时间");
}
// 判断方式与 date.after() 相反
boolean isBefore = date.before(new Date());
// 克隆一个时间对象,但返回值类型为 Object
Object objDate = date.clone();
// 如果两个 date 对象时间戳相等,返回0,如果 date 大于 compareTo() 里参数的时间,则返回正数,否则返回负数,这里结果为 -1
int compare = date.compareTo(new Date());
System.out.println("对比时间结果为 : " + compare);
// 两日期对象对应时间戳相等返回 true,否则返回 false,这里返回 true
boolean equals = date.equals(new Date(1566115976000L));
// 获取当前 date 对应时间戳
long stampLong = date.getTime();
System.out.println("当前 date 时间戳为 : " + stampLong);
// 返回该日期对象的哈希码值
int hashCode = date.hashCode();
// 设置 date 对象对应的时间戳
date.setTime(1566119343000L);
// 将 date 对象转换为字符串,这里返回为 Sun Aug 18 17:09:03 CST 2019
String strDate = date.toString();
System.out.println("当前 date 字符串为 : " + strDate);
// 创建日期格式化对象,y 年,M 月,d 月中第几日,H 小时(24制),h 小时(12制), m 分,s 秒,S 毫秒,E 星期几,D 年中第几日,F 月中第几周,w 年中第几周,W 月中的第几周,a 上午下午,k 天中第几小时,K 带有 A.M./P.M. 的小时(0~11),z 时区
SimpleDateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
String strFormat = dateFormat.format(date);
//这里输出日期为 2019-08-18 17:09:03
System.out.println("格式化后时间为 : " + strFormat);
try {
//获取指定日期时间格式字符串的毫秒时间戳
stampLong = dateFormat.parse("2020-04-30 23:59:59").getTime();
//打印内容 2020-04-30 23:59:59毫秒时间戳为 : 1588262399000
System.out.println("2020-04-30 23:59:59毫秒时间戳为 : " + stampLong);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//获取加一天时间对象(即日期加一天的时间对象)
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, 1);
date = calendar.getTime();
//打印内容为 隔天 date 字符串为 : Mon Aug 19 17:09:03 CST 2019
System.out.println("隔天 date 字符串为 : " + date.toString());
//当天0点时间戳
calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
//第一个 getTime()方法为Calendar对象所有,获取Date对象,第二个getTime()为Date对象所有,获取对应时间戳
stampLong = calendar.getTime().getTime();
//打印内容 当日0点时间戳为 : 1566144000000
System.out.println("当日0点时间戳为 : " + stampLong);
}
}