java 时间公共类(某天某年某月开始和结束)

思路:自定义SimpleDateFormat模板, 用 Calendar的对象进行日期的操作,获取的时候根据自己的需求用模板进行获取,然后转换成时间戳的格式即可。

/**
 * 时间获取公共类,精确版
 * 返回值统一采用Timestamp格式进行数据操作
 * @author Sure
 * @date 2020/7/9  17:03
 */
public class DateCommon {
    public static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    public static final  SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
    public static final  SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
    public static final  SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-01-01 00:00:00");
    public static final SimpleDateFormat sdf5 = new SimpleDateFormat("yyyy-12-31 23:59:59");
    /**
     * 获取当前时间
     * @return Timestamp
     * @author Sure
     **/
    public static Timestamp getCurrentTime() {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.DATE, 0);
        Date start = c.getTime();
        return Timestamp.valueOf(sdf.format(start));
    }
    /**
     * 获取今天开始时间
     * @return Timestamp
     * @author Sure
     **/
    public static Timestamp getTodayStartTime() {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.DATE, 0);
        Date start = c.getTime();
        return Timestamp.valueOf(sdf2.format(start));
    }
    /**
     * 这个方法需要传参,自定义月数
     * 获取某月最后一天,0当前月,1上一月;
     * @return String
     * @author Sure
     **/
    public static Timestamp getMonthEnd(int time) {
        Calendar c = Calendar.getInstance();
        c.add(Calendar.MONTH, -time);
        c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
        Date start = c.getTime();
        String s= new SimpleDateFormat("yyyy-MM-dd").format(start) + " 23:59:59";
       return Timestamp.valueOf(s);
    }
    /**
     * 自定义月数
     * 获取某月开始日期,0是当前月,1是上一月
     * @return String
     * @author Sure
     **/
    public static Timestamp getMonthStart(int time) {
        Calendar c = Calendar.getInstance();
        c.add(Calendar.MONTH, -time);
        c.set(Calendar.DAY_OF_MONTH, 1);
        Date start = c.getTime();
      return Timestamp.valueOf(new SimpleDateFormat("yyyy-MM-dd").format(start) + " 00:00:00");
    }
    /**
     * 获取昨日开始时间
     * @return Timestamp
     * @author Sure
     **/
    public static Timestamp getYesterdayStartTime() {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.DATE, -1);
        Date start = c.getTime();
        return Timestamp.valueOf(sdf2.format(start));
    }
    /**
     * 获取昨日结束时间
     * @return Timestamp
     * @author Sure
     **/
    public static Timestamp getYesterdayEndTime() {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.DATE, -1);
        Date start = c.getTime();
        return Timestamp.valueOf(sdf3.format(start));
    }
    /**
     * 获取今年开始时间
     * @return Timestamp
     * @author Sure
     **/
    public static Timestamp getThisYearStartTime() {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.YEAR, 0);
        Date start = c.getTime();
        return Timestamp.valueOf(sdf4.format(start));
    }
    /**
     * 获取今年结束时间
     * @return Timestamp
     * @author Sure
     **/
    public static Timestamp getThisYearEndTime() {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.YEAR, 0);
        Date start = c.getTime();
        return Timestamp.valueOf(sdf5.format(start));
    }
    /**
     * 获取去年开始时间
     * @return Timestamp
     * @author Sure
     **/
    public static Timestamp getFrontYearStartTime() {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.YEAR, -1);
        Date start = c.getTime();
        return Timestamp.valueOf(sdf4.format(start));
    }
    /**
     * 获取去年结束时间
     * @return Timestamp
     * @author Sure
     **/
    public static Timestamp getFrontYearEndTime() {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.YEAR, -1);
        Date start = c.getTime();
        return Timestamp.valueOf(sdf5.format(start));
    }

//上述方法均由以下方法演变而来,永不到的暂时注掉
//    /**
//     * 当前时间往前某一年的方法供调用
//     *
//     * @param time
//     * @param format
//     * @return
//     */
//    public static String getFrontYear(int time, SimpleDateFormat format) {
//        Calendar c = Calendar.getInstance();
//        c.setTime(new Date());
//        c.add(Calendar.YEAR, -time);
//        Date start = c.getTime();
//        return format.format(start);
//    }
//    /**
//     * 当前时间往前某一天的方法供调用
//     *
//     * @param time
//     * @param format
//     * @return
//     */
//    public static String getFrontDay(int time, SimpleDateFormat format) {
//        Calendar c = Calendar.getInstance();
//        c.setTime(new Date());
//        c.add(Calendar.DATE, -time);
//        Date start = c.getTime();
//        return format.format(start);
//    }
//    /**
//     * 获取当前时间
//     *
//     * @return String类型的yyyy-MM-dd
//     */
//    public static String getDate() {
//        Date now = new Date();
//        return FORMAT.format(now);
//    }
//
//    /**
//     * 获取当前时间
//     *
//     * @return sql.Date类型的yyyy-MM-dd
//     */
//    public static java.sql.Date getDateTime() {
//        Date now = new Date();
//        java.sql.Date d = new java.sql.Date(now.getTime());
//        return d;
//    }
//
//    //--当前时间往前某一天
//    public static String getFrontDay(int time) {
//        Calendar c = Calendar.getInstance();
//        c.setTime(new Date());
//        c.add(Calendar.DATE, -time);
//        Date start = c.getTime();
//        return FORMAT.format(start);
//    }
//
//    //--当前时间后的某一天
//    public static String getAfterDay(int time) {
//        Calendar c = Calendar.getInstance();
//        c.setTime(new Date());
//        c.add(Calendar.DATE, +time);
//        Date start = c.getTime();
//        return FORMAT.format(start);
//    }
//
//    /**
//     * @param time 推进的时间长度
//     * @return 当前时间向前推进固定月份
//     */
//    public static String getFrontMonth(int time) {
//        Date now = new Date();
//        Date newDate = stepMonth(now, -time);
//        return FORMAT.format(newDate);
//    }
//
//    /**
//     * @param time 推进的时间长度
//     * @return 当前时间向后推进固定月份
//     */
//    public static String getAfterMonth(int time) {
//        Date now = new Date();
//        Date newDate = stepMonth(now, +time);
//        return FORMAT.format(newDate);
//    }
//
//    /**
//     * 在给定的日期加上或减去指定月份后的日期
//     *
//     * @param sourceDate 原始时间
//     * @param month      要调整的月份,向前为负数,向后为正数
//     * @return
//     */
//    public static Date stepMonth(Date sourceDate, int month) {
//        Calendar c = Calendar.getInstance();
//        c.setTime(sourceDate);
//        c.add(Calendar.MONTH, month);
//        return c.getTime();
//    }
//
//    /**
//     * 获取本月开始日期
//     *
//     * @return String
//     **/
//    public static String getMonthStart() {
//        Calendar c = Calendar.getInstance();
//        c.add(Calendar.MONTH, 0);
//        c.set(Calendar.DAY_OF_MONTH, 1);
//        Date time = c.getTime();
//        return new SimpleDateFormat("yyyy-MM-dd").format(time) + " 00:00:00";
//    }
//
//    /**
//     * 获取本月最后一天
//     *
//     * @return String
//     **/
//    public static String getMonthEnd() {
//        Calendar c = Calendar.getInstance();
//        c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
//        Date time = c.getTime();
//        return new SimpleDateFormat("yyyy-MM-dd").format(time) + " 23:59:59";
//    }
//
//    /**
//     * 获取上一个月的最后一天
//     *
//     * @return String
//     **/
//    public static String getLastMonthEnd() {
//        Calendar calendar2 = Calendar.getInstance();
//        calendar2.set(Calendar.DAY_OF_MONTH, 0);
//        return new SimpleDateFormat("yyyy-MM-dd").format(calendar2.getTime()) + " 23:59:59";
//    }
//
//    /**
//     * 获取上年的最后一天
//     */
//
//    /**
//     * 获取当前年最后一天日期
//     */
//    public static Date getYearLast() {
//        Calendar calendar = Calendar.getInstance();
//        calendar.clear();
//        calendar.set(Calendar.YEAR, Calendar.YEAR);
//        calendar.roll(Calendar.DAY_OF_YEAR, -1);
//        Date currYearLast = calendar.getTime();
//        return currYearLast;
//    }
//
//    /**
//     * 判断两个时间戳是否是同一天
//     *
//     * @param t1
//     * @param t2
//     * @return
//     */
//    public static Boolean isSameDay(Timestamp t1, Timestamp t2) {
//        if (t1 == null || t2 == null) {
//            return false;
//        }
//        return DateUtils.isSameDay(new Date(t1.getTime()), new Date(t2.getTime()));
//    }
//
//    /**
//     * 判断时间是否是本周
//     *
//     * @param t1
//     * @return
//     */
//    public static Boolean isThisWeek(Timestamp t1) {
//        Calendar calendar = Calendar.getInstance();
//        int currentWeek = calendar.get(Calendar.WEEK_OF_YEAR);
//        calendar.setTime(new Date(t1.getTime()));
//        int paramWeek = calendar.get(Calendar.WEEK_OF_YEAR);
//        return paramWeek == currentWeek;
//    }
//
//    /**
//     * 根据传输的格式获取时间
//     *
//     * @param
//     */
//    public static String getDateFormat(String s) {
//        Date systemDate = new Date();
//        DateFormat format1 = new SimpleDateFormat(s);
//        return format1.format(systemDate);
//    }
//
//    //--计算时间相减得出日
//    public static long timeReduceReturnDay(Timestamp startTime, Timestamp endTime) {
//        return (startTime.getTime() - endTime.getTime()) / (24 * 60 * 60 * 1000);
//    }
//
//    //--计算时间相减得出分
//    public static long timeReduceReturnMin(Timestamp startTime, Timestamp endTime) {
//        return (startTime.getTime() - endTime.getTime()) / (60 * 1000);
//    }
//
//    //--计算两个时间的差值小于十分钟
//    public static boolean getTimeDifference(Timestamp formatTime1, Timestamp formatTime2) {
//        //SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        long t1 = formatTime1.getTime();
//        long t2 = formatTime2.getTime();
//        int hours = (int) ((t1 - t2) / (1000 * 60 * 60));//--小时
//        int minutes = (int) (((t1 - t2) / 1000 - hours * (60 * 60)) / 60);//--分钟
//        //int second = (int) ((t1 - t2) / 1000 - hours * (60 * 60) - minutes * 60);//--秒
//        //--大于10分钟
//        if (hours < 1 && minutes < 10) {
//            return false;
//        }
//        return true;
//    }
//
//    //--当前时间减去某些分钟
//    //--@param 需要减去的分钟
//    public static Timestamp subMinuteGetTime(int minute) {
//        Date now = new Date();
//        long time = minute * 60 * 1000;
//        return new Timestamp(now.getTime() - time);
//    }

//    //--当前时间加上某些分钟
//    //--@param 需要加上的分钟
//    public static Timestamp addMinuterGetTime(int minute) {
//        Date now = new Date();
//        long time = minute * 60 * 1000;
//        return Timestamp.valueOf(Utils.getPeriodTimeStr(now.getTime() + time));
//    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值