java日期工具类

简介: java日期工具类
package com.ruoyi.system.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
 * 日期工具类
 */
public class DateUtil {
    /**
     * 返回两个时间之间的差 精确到秒
     * @param olddatetime
     * @param nowtime
     * @return
     */
    public static String DateDifferenceS(String olddatetime,String nowtime) throws Exception {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date parse = format.parse(olddatetime);
        Date date = format.parse(nowtime);
        long between = date.getTime() - parse.getTime();
        long day = between / (24 * 60 * 60 * 1000);
        long hour = (between / (60 * 60 * 1000) - day * 24);
        long min = ((between / (60 * 1000)) - day * 24 * 60 - hour * 60);
        long s = (between / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
        System.out.println(day + "天" + hour + "小时" + min + "分" + s + "秒");
        return s+"";
    }
    /**
     * 返回传入字符串的date  字符串格式:yyyy-MM-dd HH:mm:ss
     *
     * @param date 传入时间
     * @return
     */
    public static Date rtuDateByStr(String date) {
        DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date parse = null;
        try {
            parse = format1.parse("2005-12-15 15:30:23");
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return parse;
    }
    /**
     * 返回传入时间的格式化字符串  格式:yyyy-MM-dd HH:mm:ss
     *
     * @param date 传入时间
     * @return
     */
    public static String rtuDateH(Date date) {
        DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return format1.format(date);
    }
    /**
     * 返回当前时间 格式:yyyy-MM-dd HH:mm:ss
     *
     * @return String
     */
    public static String fromDateH() {
        DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return format1.format(new Date());
    }
    static DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
    public static String fromDateymdhm() {
        DateFormat format2 = new SimpleDateFormat("yyyyMMddHHmm");
        return format2.format(new Date());
    }
    public static String getBeforeMinuteTime(int minute) {
        Date now = new Date();
        Date now_10 = new Date(now.getTime() - 60*minute); //10分钟前的时间
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//可以方便地修改日期格式
        String nowTime_10 = dateFormat.format(now_10);
        return nowTime_10;
    }
    /**
     * 获取5分钟前的时间
     */
    public static String getBefore5minTime() {
        Date now = new Date();
        Date now_5 = new Date(now.getTime() - 300000); //10分钟前的时间
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//可以方便地修改日期格式
        String nowTime_5 = dateFormat.format(now_5);
        return nowTime_5;
    }
    /**
     * 获取当前时间的前几个小时的时间 返回格式 yyyy-MM-dd hh
     * @param ihour
     * @return
     */
    public static String getBeforeHourTime(int ihour){
        String returnstr = "";
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - ihour);
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH");
        returnstr = df.format(calendar.getTime());
        return returnstr;
    }
    /**
     * 获取当前时间的前几个小时的时间 返回格式 yyyy-MM-dd HH:mm:ss
     * @param ihour
     * @return
     */
    public static String getBeforeHourTimeAndS(int ihour){
        String returnstr = "";
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - ihour);
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        returnstr = df.format(calendar.getTime());
        return returnstr;
    }
    /**
     * 获取当前时间的前几分钟的时间 返回格式 yyyy-MM-dd HH:mm:ss
     * @param minute
     * @return
     */
    public static String getBeforeMinuteTimeAndS(int minute){
        String returnstr = "";
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.MINUTE, -minute);
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        returnstr = df.format(calendar.getTime());
        return returnstr;
    }
    /**
     * 返回当前时间 格式:yyyy-MM-dd
     *
     * @return String
     */
    public static String fromDateY() {
        DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
        return format1.format(new Date());
    }
    /**
     * 返回当前时间 格式:yyyy-MM-dd HH:mm
     *
     * @return String
     */
    public static String fromDateHM() {
        DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        return format1.format(new Date());
    }
     /** 返回当前月 格式:yyyy-MM
     *
     * @return String
     */
    public static String fromDateMonth() {
        DateFormat format1 = new SimpleDateFormat("yyyy-MM");
        return format1.format(new Date());
    }
     /** 返回当前时间 格式:HH:mm
     *
     * @return String
     */
    public static String fromTimemm() {
        DateFormat format1 = new SimpleDateFormat("HH:mm");
        return format1.format(new Date());
    }
    /**
     * 返回前i天的日期 格式:yyyy-MM-dd
     *
     * @return String
     */
    public static String findday(int i){
        Calendar c = Calendar.getInstance();
        //过去七天
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        c.setTime(new Date());
        c.add(Calendar.DATE, - i);
        Date d = c.getTime();
        String day = format.format(d);
        return day;
    }
    /**
     * 返回前i天的日期 格式:MM-dd
     *
     * @return String
     */
    public static String finddaynotyear(int i){
        Calendar c = Calendar.getInstance();
        //过去七天
        SimpleDateFormat format = new SimpleDateFormat("M-dd");
        c.setTime(new Date());
        c.add(Calendar.DATE, - i);
        Date d = c.getTime();
        String day = format.format(d);
        return day;
    }
    /**
     * 获取上月开始时间和结束时间
     */
    public static String[] findMonthSdEd(String year,String month){
        String[] sded = {};
        Calendar c=Calendar.getInstance();
        if(month==null||year==null){
            c.add(Calendar.MONTH, -1);
        }else{
            c.setTime(new Date());
            c.set(Calendar.YEAR, Integer.parseInt(year));
            c.set(Calendar.MONTH, Integer.parseInt(month)-1);
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        int lastMonthMaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH);
        c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), lastMonthMaxDay, 23, 59, 59);
        //按格式输出
        String gtime = sdf.format(c.getTime()); //上月最后一天
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-01 00:00");
        String gtime2 = sdf2.format(c.getTime()); //上月第一天
        sded=(gtime2+"_"+gtime).split("_");
        return sded;
    }
    public static List<String> yearMonth() {
        LocalDate today = LocalDate.now();
        List<String> monList = new ArrayList<>();
        for(long i = 1L;i <= 12L; i++){
            LocalDate localDate = today.minusMonths(i);
            String ss = localDate.toString().substring(0,7);
            monList.add(ss);
        }
        return monList;
    }
    public static void main(String[] args) {
        String s = "05";
        if(Integer.parseInt(s)==5){
            System.out.println(1);
        }
    }
}
相关文章
|
2月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
60 26
|
2月前
|
安全 Java API
告别SimpleDateFormat:Java 8日期时间API的最佳实践
在Java开发中,处理日期和时间是一个基本而重要的任务。传统的`SimpleDateFormat`类因其简单易用而被广泛采用,但它存在一些潜在的问题,尤其是在多线程环境下。本文将探讨`SimpleDateFormat`的局限性,并介绍Java 8引入的新的日期时间API,以及如何使用这些新工具来避免潜在的风险。
40 5
|
3月前
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
161 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
3月前
|
Java API
Java的日期类都是怎么用的
【10月更文挑战第1天】本文介绍了 Java 中处理日期和时间的三个主要类:`java.util.Date`、`java.util.Calendar` 和 `java.time` 包下的新 API。`Date` 类用于表示精确到毫秒的瞬间,可通过时间戳创建或获取当前日期;`Calendar` 抽象类提供丰富的日期操作方法,如获取年月日及时区转换;`java.time` 包中的 `LocalDate`、`LocalTime`、`LocalDateTime` 和 `ZonedDateTime` 等类则提供了更为现代和灵活的日期时间处理方式,支持时区和复杂的时间计算。
56 14
|
3月前
|
Java
Java 些许公共工具类
Java 些许公共工具类
20 1
|
4月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
57 3
|
4月前
|
安全 Java API
时间日期API(Date,SimpleDateFormat,Calendar)+java8新增日期API (LocalTime,LocalDate,LocalDateTime)
这篇文章介绍了Java中处理日期和时间的API,包括旧的日期API(Date、SimpleDateFormat、Calendar)和Java 8引入的新日期API(LocalTime、LocalDate、LocalDateTime)。文章详细解释了这些类/接口的方法和用途,并通过代码示例展示了如何使用它们。此外,还讨论了新旧API的区别,新API的不可变性和线程安全性,以及它们提供的操作日期时间的灵活性和简洁性。
|
5月前
|
前端开发 JavaScript Java
【前端学java】java中的日期操作(13)
【8月更文挑战第10天】java中的日期操作
28 2
|
5月前
|
缓存 前端开发 Java
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
【8月更文挑战第10天】java基础巩固,工具类的封装
30 1
|
5月前
|
Java
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决