日期工具类

package com.main.gm.util;

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;


public class DateUtils {
    /**
     * 默认的日期格式
     */
    public static final String DEFAULT_DATE_FAMAT="yyyy-MM-dd HH:mm:ss";
    /**
     * 获取当前的时间间隔
     * @return
     */
    public static long getCurrentDate() {
        return System.currentTimeMillis() / 1000;
    }
    
    /**
     * 字符串转日期 按指定格式
     * @param stringValue
     * @param format
     * @return
     * @throws ParseException
     */
    public static Date stringToDate(String stringValue,String format) throws ParseException{
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.parse(stringValue);
    }
    /**
     * 字符串转日期 按默认格式
     * @param stringValue
     * @return
     * @throws ParseException
     */
    public static Date stringToDate(String stringValue) throws ParseException{
        return stringToDate(stringValue,DEFAULT_DATE_FAMAT);
    }
    
    /**
     * 日期转字符串 按默认格式
     * @param stringValue
     * @return
     * @throws ParseException
     */
    public static String dateToString(Date dt) throws ParseException{
        SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_DATE_FAMAT);
        return sdf.format(dt);
    }
    
    /**
     * 判断是否是今天
     * @param oldTime
     * @param newTime
     * @return
     */
    public static boolean isToday(long oldTime,long newTime) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(newTime * 1000);
        
        Calendar todayStartCalendar = Calendar.getInstance();
        todayStartCalendar.set(calendar.get(Calendar.YEAR),
                calendar.get(Calendar.MONTH),
                calendar.get(Calendar.DATE),0,0,0);
        System.out.println("stat:::"+todayStartCalendar.getTimeInMillis());
        
        Calendar todayEndCalendar = Calendar.getInstance();
        todayEndCalendar.set(calendar.get(Calendar.YEAR),
                calendar.get(Calendar.MONTH),
                calendar.get(Calendar.DATE),23,59,59);
        System.out.println("end:::"+todayEndCalendar.getTimeInMillis());
        
        if(oldTime * 1000 >= todayStartCalendar.getTimeInMillis() &&
                oldTime<=todayEndCalendar.getTimeInMillis()) {
            return true;
        }
        return false;
    }  
    
    /**
     * 是否是昨天
     * @param validateTime 需要验证的时间 秒
     * @param todayTime 今天的时间
     * @return
     */
    public static boolean isYesterday(long validateTime,long todayTime) {
        long diff = 24 * 60 * 60 * 1000;
        
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(todayTime * 1000 - diff);
        
        Calendar yesterDayStartCalendar = Calendar.getInstance();
        yesterDayStartCalendar.set(calendar.get(Calendar.YEAR),
                calendar.get(Calendar.MONTH),
                calendar.get(Calendar.DATE),0,0,0);
        System.out.println("stat:::"+yesterDayStartCalendar.getTimeInMillis());
        
        Calendar yesterDayEndCalendar = Calendar.getInstance();
        yesterDayEndCalendar.set(calendar.get(Calendar.YEAR),
                calendar.get(Calendar.MONTH),
                calendar.get(Calendar.DATE),23,59,59);
        System.out.println("end:::"+yesterDayEndCalendar.getTimeInMillis());
        
        if(validateTime * 1000 >= yesterDayStartCalendar.getTimeInMillis() &&
                validateTime <= yesterDayEndCalendar.getTimeInMillis()) {
            return true;
        }
        return false;
    }
    
    

    
    /**
     * 获取分钟时间
     * @param time1
     * @param time2
     * @return
     */
    public static int compareDate(long time1, long time2){
        long time = time1 - time2;
        int minute = (int)((time / 1000) / 60);
        return minute;
    }
    
    /**
     * 得到几天后的时间
     *
     * @param d
     * @param day
     * @return
     */
    public static Date getDateAfter(Date d, int day) {
        Calendar now = Calendar.getInstance();
        now.setTime(d);
        now.set(Calendar.DATE, now.get(Calendar.DATE) + day);
        return now.getTime();
    }
    
    /**
     * 得到某天的确定时刻
     *
     * @param d
     * @param day
     * @return
     */
    public static Date getOneTime(Date dt,int hour,int min,int seconds) {
        Calendar now = Calendar.getInstance();
        now.setTime(dt);
        now.set(Calendar.HOUR_OF_DAY, 0);
        now.set(Calendar.MINUTE, 0);
        now.set(Calendar.SECOND, 0);
        return now.getTime();
    }
    
    /**
     * 获取某月的最后一天
     * @Title:getLastDayOfMonth
     * @throws
     */
    public static Date getLastDayOfMonth(Date dt)
    {
        Calendar cal = Calendar.getInstance();
        cal.setTime(dt);
        //获取某月最大天数
        int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
        //设置日历中月份的最大天数
        cal.set(Calendar.DAY_OF_MONTH, lastDay);
         
        return cal.getTime();
    }
    
    /**
     * 得到几天后的时间
     *
     * @param d
     * @param day
     * @return
     */
    public static Date getMonthAfter(Date d, int month) {
        Calendar now = Calendar.getInstance();
        now.setTime(d);
        now.set(Calendar.MONTH, now.get(Calendar.MONTH) + month);
        return now.getTime();
    }
    
    public static void main(String[] args) throws IOException {
        System.out.println("======"+isToday(getCurrentDate(), getCurrentDate()));
        System.out.println("======"+isYesterday(1373039099, getCurrentDate()));
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hutool的日期工具类是其中一个常用的类辅助工具之一。它提供了一系列方便的方法来处理日期和时间相关的操作。日期工具类具有以下特点: 1. 可以灵活地处理日期和时间的格式化和解析。 2. 可以进行日期的计算和比较,例如计算两个日期之间的天数或小时数差距。 3. 可以对日期进行加减操作,例如增加几天或减去几小时。 4. 可以获取当前日期和时间,以及获取特定日期的年、月、日、小时、分钟、秒等信息。 日期工具类的使用非常简单,你可以使用DateTime类来进行日期相关的操作。DateTime类继承自java.util.Date,因此可以替代原生的Date类的使用,并且还提供了许多其他实用的方法。 例如,你可以使用DateTime的now()方法获取当前日期和时间,使用format()方法将日期格式化为指定的格式,使用parse()方法将字符串解析为日期对象,使用plusDays()方法增加指定的天数等等。 总的来说,Hutool的日期工具类提供了丰富的方法和功能,可以方便地处理日期和时间相关的操作。您可以根据具体的需求选择使用适合的方法来简化您的开发工作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Hutool使用指南(一):时间日期工具](https://blog.csdn.net/C18298182575/article/details/131008226)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [hutool 工具类](https://download.csdn.net/download/LiHaoYang11/12153632)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值