java Date操作日期相关

java Date操作日期相关方法
获取当天日期
获取10分钟/年/月/天/小时后的时间
Date转化为毫秒数
Date转字符串
字符串转Date
计算两个日期的毫秒数
比较时间大小
将日期转换为周几
得到二个日期间的间隔天数

1.获取当天日期

        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));
2019-12-26
2019-12-26 13:49:35
13:49:35
2019年12月26日 星期四 下午01时49分35秒 CST
2019年12月26日 下午01时49分35秒
19-12-26 下午1:49
2019-12-26 13:49:35

2.获取10分钟后的时间。

        Date date = new Date();
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.add(Calendar.MINUTE, 10);
        Date d2 = cal.getTime();
        System.out.println("10分钟之后时间" + df2.format(d2));

获取10年之后的日期:cal.add(Calendar.YEAR, 10);
获取10个月之后的日期:cal.add(Calendar.MONTH, 10);
获取10天之后的日期:cal.add(Calendar.DATE, 10);
获取10小时之后的日期:cal.add(Calendar.HOUR, 10);

3.Date转化为毫秒。

 long systime = new Date().getTime();

4.字符串转Date

                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 String start5 = "2019-10-16 14:12:13";
                 String end5 = "2019-10-16 14:14:13";
                 Date start6 = sdf.parse(start5);
                 Date end6 = sdf.parse(end5);
                 System.out.println( "转换成date类型      "+ start6);
                 System.out.println( "转换成date类型      "+ end6);
转换成date类型      Wed Oct 16 14:12:13 CST 2019
转换成date类型      Wed Oct 16 14:14:13 CST 2019

5.Date转字符串

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String str = sdf.format(date);
System.out.println( "Date转字符串      "+str);
Date转字符串      2019-12-26 14:21:23

6.计算两个日期的毫秒数

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String start5 = "2019-10-16 14:12:13";
        String end5 = "2019-10-16 14:12:18";

        Date start6 = sdf.parse(start5);
        Date end6 = sdf.parse(end5);

        System.out.println("计算两个日期的毫秒   " + calculateSeconds(start6,end6));
 /**
     * 计算两个日期的毫秒
     * @param start
     * @param end
     * @return
     */
    public static int calculateSeconds(Date start, Date end) {
        long startTimeMilliseconds = start.getTime();
        long endTimeMilliseconds = end.getTime();
        return (int) (endTimeMilliseconds - startTimeMilliseconds);
    }
计算两个日期的毫秒   5000

7.比较时间大小

      
        String start5 = "2019-10-16 14:12:13";
        String end5 = "2019-11-16 14:12:18";

        System.out.println("比较时间大小   " + dateTimeComparison(start5,end5));
  /**
     * 比较时间大小 start
start:1571206320000
end:1573884720000
比较时间大小   true

8.将日期转换为周几

        String start = "2019-10-16 14:12:13";

        System.out.println("将日期转换为周几   " + dateToWeek(start));
   /**
     * 将日期转换为周几
     * @param datetime
     * @return
     */
    public static String dateToWeek(String datetime) {
        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
        String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
        Calendar cal = Calendar.getInstance(); // 获得一个日历
        Date datet = null;
        try {
            datet = f.parse(datetime);
            cal.setTime(datet);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        int w = cal.get(Calendar.DAY_OF_WEEK) - 1; // 指示一个星期中的某天。
        if (w < 0)
            w = 0;
        return weekDays[w];
    }
将日期转换为周几   星期三

9.得到二个日期间的间隔天数

        String start = "2019-11-20 14:12:13";
        String end = "2019-10-16 14:12:18";

        System.out.println("得到二个日期间的间隔天数   " + getTwoDay(start,end));
  /**
     * 得到二个日期间的间隔天数
     */
    public static String getTwoDay(String sj1, String sj2) {
        SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
        long day = 0;
        try {
            java.util.Date date = myFormatter.parse(sj1);
            java.util.Date mydate = myFormatter.parse(sj2);
            day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
        } catch (Exception e) {
            return "";
        }
        return day + "";
    }
得到二个日期间的间隔天数   35

注意,这里开始时间比结束时间大返回的正数,开始时间比结束时间小会返回负数。

你可能感兴趣的:(java)