JAVA 日期处理

// 文件路径 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);
    }
}

 

posted @ 2019-09-08 15:46  风吹屁股凉冰冰  阅读(203)  评论(0编辑  收藏  举报