欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java截取日期的年月日时间(Java根据年月日查询技巧)

程序员文章站 2023-11-10 11:21:16
最近开发工作过程中遇到一些日期时间相关的问题,发现有些东西都忘了,空闲的时候整理了一下,写了一个工具类。package com.utils;import java.text.dateformat;im...

最近开发工作过程中遇到一些日期时间相关的问题,发现有些东西都忘了,空闲的时候整理了一下,写了一个工具类。

package com.utils;

import java.text.dateformat;
import java.text.parseexception;
import java.text.simpledateformat;
import java.util.calendar;
import java.util.date;

public class dateutils {
    /**
     * 通过date类获取时间
     * @return
     */
    public static string getdatebydate(){
        date date = new date();
        simpledateformat dateformat=new simpledateformat("yyyy-hh-dd hh:mm:ss");
        string datestr=dateformat.format(date);
        system.out.println(datestr);
        return datestr;
    }

    /**
     * 通过calendar类获取时间
     * @return
     */
    public static string getdatebycalendar(){
        calendar calendar = calendar.getinstance();
        date date=calendar.gettime();
        simpledateformat dateformat=new simpledateformat("yyyy-hh-dd hh:mm:ss");
        string datestr=dateformat.format(date);
        system.out.println(datestr);
        return  datestr;
    }

    /**
     * 通过字符串获取时间
     * @param datestr
     * @return
     */
    public static date formstring(string datestr){
        simpledateformat dateformat=new simpledateformat("yyyy-hh-dd hh:mm:ss");
        try {
            date date=dateformat.parse(datestr);
            system.out.println(date);
            return date;
        } catch (parseexception e) {
            e.printstacktrace();
        }
        return null;
    }

    /**
     * 通过时间戳获取时间
     * @param time
     * @return
     */
    public static string  getbylong(long time){
        simpledateformat dateformat=new simpledateformat("yyyy-hh-dd hh:mm:ss");
        string date=dateformat.format(time);
        return date;
    }

    /**
     * 获取系统时间,时间戳
     * @return
     */
    public static long getcurrenttime(){
        //方式一
//        date date = new date();
//        long time=date.gettime();

        //方式二
        long time=system.currenttimemillis();
        return time;
    }

    /**
     * 获取当前年月日
     * @return
     */
    public static void getyearmonthday(){
        //第一种,通过calendar类获取
        calendar now = calendar.getinstance();
        system.out.println("年: " + now.get(calendar.year));
        system.out.println("月: " + (now.get(calendar.month) + 1) + "");
        system.out.println("日: " + now.get(calendar.day_of_month));
        system.out.println("时: " + now.get(calendar.hour_of_day));
        system.out.println("分: " + now.get(calendar.minute));
        system.out.println("秒: " + now.get(calendar.second));
        system.out.println("当前时间毫秒数:" + now.gettimeinmillis());
        //第二种,通过date类获取
        date date = new date();
        dateformat df1 = dateformat.getdateinstance();//日期格式,精确到日
        system.out.println(df1.format(date));
        dateformat df2 = dateformat.getdatetimeinstance();//可以精确到时分秒
        system.out.println(df2.format(date));
        dateformat df3 = dateformat.gettimeinstance();//只显示出时分秒
        system.out.println("只显示出时分秒:"+df3.format(date));
        dateformat df4 = dateformat.getdatetimeinstance(dateformat.full,dateformat.full); //显示日期,周,上下午,时间(精确到秒)
        system.out.println("显示日期,周,上下午,时间(精确到秒):"+df4.format(date));
        dateformat df5 = dateformat.getdatetimeinstance(dateformat.long,dateformat.long); //显示日期,上下午,时间(精确到秒)
        system.out.println("显示日期,上下午,时间(精确到秒):"+df5.format(date));
        dateformat df6 = dateformat.getdatetimeinstance(dateformat.short,dateformat.short); //显示日期,上下午,时间(精确到分)
        system.out.println("显示日期,上下午,时间(精确到分):"+df6.format(date));
        dateformat df7 = dateformat.getdatetimeinstance(dateformat.medium,dateformat.medium); //显示日期,时间(精确到分)
        system.out.println("显示日期,时间(精确到分):"+df7.format(date));

        string [] dates=new simpledateformat("yyyy-mm-dd").format(date).split("-");
        string year=dates[0];
        string month=dates[1];
        string day=dates[2];
        string [] months=new simpledateformat("hh:mm:ss").format(date).split(":");
        string hour=dates[0];
        string minute=dates[1];
        string seconde=dates[2];
    }

    /**
     * 获取前一段时间/后一段时间
     */
    public static void befortime(){
        //根据现在时间计算
        calendar now = calendar.getinstance();
        now.add(calendar.year, 1); //现在时间是1年后
        system.out.println(now);
        now.add(calendar.year, -1); //现在时间是1年前
        system.out.println(now);

        //根据某个特定的时间 date (date 型) 计算
        calendar specialdate = calendar.getinstance();
        specialdate.settime(new date()); //注意在此处将 specialdate 的值改为特定日期
        specialdate.add(calendar.year, 1); //特定时间的1年后
        system.out.println(specialdate);
        specialdate.add(calendar.year, -1); //特定时间的1年前
        system.out.println(specialdate);
    }

    /**
     * 计算两个日期相差多少小时,分钟,毫秒
     */
    public static void betweenday() throws parseexception {
        dateformat df = new simpledateformat("yyyy-mm-dd hh:mm:ss");
        date d1 = df.parse("2017-12-20 12:19:19");
        date d2 = df.parse("2017-12-20 11:40:34");
        long nd = 1000 * 24 * 60 * 60;
        long nh = 1000 * 60 * 60;
        long nm = 1000 * 60;
        long ns = 1000;
        // 获得两个时间的毫秒时间差异
        long diff = d1.gettime() - d2.gettime();
        // 计算差多少天
        long day = diff / nd;
        // 计算差多少小时
        long hour = diff % nd / nh;
        // 计算差多少分钟
        long min = diff % nd % nh / nm;
        // 计算差多少秒//输出结果
        long sec = diff % nd % nh % nm / ns;
        system.out.println(day + "天" + hour + "小时" + min + "分钟"+ sec + "秒");
    }

    public static void main(string[] args) {
//        getdatebydate();
//        formstring("2021-15-27 15:42:44");
//        getyearmonthday();

    }
}