日期工具类

public class DateTimeUtil {
    private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

  
    /**
     * 获得所需要的日期格式
     *
     * @param date
     * @param format yyyy-MM-dd HH:mm:ss
     * @return
     */
    public static Date getFormatDateFromString(String date, String format) {
        SimpleDateFormat formatter = new SimpleDateFormat(format);
        Date formatDate = null;
        try {
            formatDate = formatter.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return formatDate;
    }

    /**
     * 获得所需要的日期格式 date+time
     *
     * @param date   只有 yyyy-MM-dd
     * @param format yyyy-MM-dd HH:mm:ss
     * @param time   HH:mm:ss
     * @return
     */
    public static Date getFormatDateFromString(String date, String format, String time) {
        SimpleDateFormat formatter = new SimpleDateFormat(format);
        Date formatDate = null;
        try {
            formatDate = formatter.parse(date + " " + time);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return formatDate;
    }

    public static String getFormatStringDate(Date date, String format) {
        DateFormat df = new SimpleDateFormat(format);
        return df.format(date);
    }

    /**
     * 跟当前时间进行比较
     *
     * @param date
     * @param format
     * @return
     */
    public static int compareNowDate(Date date, String format) {
        Date now = new Date();
        int result = 0;
        if (getFormatDate(date, format).getTime() > getFormatDate(now, format).getTime())
            result = 1;
        return result;
    }

    /**
     * 获得所需要的日期格式
     *
     * @param date
     * @param format yyyy-MM-dd HH:mm:ss
     * @return
     */
    public static Date getFormatDate(Date date, String format) {
        DateFormat df = new SimpleDateFormat(format);
        Date formatDate = null;
        try {
            formatDate = df.parse(getFormatStringDate(date, format));
        } catch (Exception e) {
            logger.info("日期转换出错" + e.getMessage());
        }
        return formatDate;
    }

    /**
     * 获得本月的第一天
     *
     * @return
     */
    public static Date getMonthOfFirst() {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.set(calendar.HOUR_OF_DAY, 00);
        calendar.set(calendar.MINUTE, 00);
        calendar.set(calendar.SECOND, 00);
        return calendar.getTime();
    }

    /**
     * 获得下月的第一天
     *
     * @return
     */
    public static Date getMonthOfEnd() {
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.MONTH, 1);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.set(calendar.HOUR_OF_DAY, 00);
        calendar.set(calendar.MINUTE, 00);
        calendar.set(calendar.SECOND, 00);
        return calendar.getTime();
    }

    /**
     * 获得该周的周一
     *
     * @return
     */
    public static Date getWeekOfFirst() {
        Calendar calendar = Calendar.getInstance();
        calendar.set(calendar.HOUR_OF_DAY, 00);
        calendar.set(calendar.MINUTE, 00);
        calendar.set(calendar.SECOND, 00);
        calendar.set(Calendar.DAY_OF_WEEK, 1);
        calendar.add(calendar.DAY_OF_MONTH, 1);
        return calendar.getTime();
    }

    /**
     * 获得下周的周一
     *
     * @return
     */
    public static Date getWeekOfEnd() {
        Calendar calendar = Calendar.getInstance();
        calendar.set(calendar.HOUR_OF_DAY, 00);
        calendar.set(calendar.MINUTE, 00);
        calendar.set(calendar.SECOND, 00);
        calendar.set(Calendar.DAY_OF_WEEK, 1);
        calendar.add(calendar.DAY_OF_MONTH, 8);
        return calendar.getTime();
    }

    /**
     * 获得当天时间
     *
     * @return
     */
    public static Date getToday() {
        Calendar calendar = Calendar.getInstance();
        calendar.set(calendar.HOUR_OF_DAY, 00);
        calendar.set(calendar.MINUTE, 00);
        calendar.set(calendar.SECOND, 00);
        return calendar.getTime();
    }

    /**
     * 获取明天日期
     *
     * @return
     */
    public static Date getTomorrow() {
        Calendar calendar = Calendar.getInstance();
        calendar.add(calendar.DAY_OF_MONTH, 1);
        calendar.set(calendar.HOUR_OF_DAY, 00);
        calendar.set(calendar.MINUTE, 00);
        calendar.set(calendar.SECOND, 00);
        return calendar.getTime();
    }

    /**
     * 获取一天的开始
     *
     * @param now
     * @return
     */
    public static Date getDayBegin(Date now) {
        Calendar c = Calendar.getInstance();
        c.setTime(now);
        c.set(Calendar.HOUR_OF_DAY, 00);
        c.set(Calendar.MINUTE, 00);
        c.set(Calendar.SECOND, 00);
        return c.getTime();
    }

    /**
     * 获取一天的结束
     *
     * @param now
     * @return
     */
    public static Date getDayEnd(Date now) {
        Calendar c = Calendar.getInstance();
        c.setTime(now);
        c.set(Calendar.HOUR_OF_DAY, 23);
        c.set(Calendar.MINUTE, 59);
        c.set(Calendar.SECOND, 59);
        return c.getTime();
    }

    /**
     * 获取传入时间对应的星期一的日期
     *
     * @param now
     * @return
     */
    public static Date getWeekBegin(Date now) {

        Calendar c = Calendar.getInstance();
        c.setTime(now);
        c.set(Calendar.DAY_OF_WEEK, c.getActualMinimum(Calendar.DAY_OF_WEEK));
        // 国内一周以星期一作为开始
        c.add(Calendar.DATE, 1);
        c.set(Calendar.HOUR_OF_DAY, 00);
        c.set(Calendar.MINUTE, 00);
        c.set(Calendar.SECOND, 00);
        return c.getTime();
    }

    /**
     * 获取传入时间对应的星期天的日期时间
     *
     * @param now
     * @return
     */
    public static Date getWeekEnd(Date now) {

        Calendar c = Calendar.getInstance();
        c.setTime(now);
        c.set(Calendar.DAY_OF_WEEK, c.getActualMaximum(Calendar.DAY_OF_WEEK));
        // 国内一周以星期天作为结束
        c.add(Calendar.DATE, 1);
        c.set(Calendar.HOUR_OF_DAY, 23);
        c.set(Calendar.MINUTE, 59);
        c.set(Calendar.SECOND, 59);
        return c.getTime();
    }

    /**
     * 获取传入时间对应的月初日期
     *
     * @param now
     * @return
     */
    public static Date getMonthBegin(Date now) {

        Calendar c = Calendar.getInstance();
        c.setTime(now);
        c.set(Calendar.DAY_OF_MONTH, c.getActualMinimum(Calendar.DAY_OF_MONTH));
        c.set(Calendar.HOUR_OF_DAY, 00);
        c.set(Calendar.MINUTE, 00);
        c.set(Calendar.SECOND, 00);
        return c.getTime();
    }

    /**
     * 获取传入时间对应的月末日期
     *
     * @param now
     * @return
     */
    public static Date getMonthEnd(Date now) {

        Calendar c = Calendar.getInstance();
        c.setTime(now);
        c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
        c.set(Calendar.HOUR_OF_DAY, 23);
        c.set(Calendar.MINUTE, 59);
        c.set(Calendar.SECOND, 59);
        return c.getTime();
    }

    /**
     * 获取某个时间后几天的时间
     *
     * @param sourceTime 时间
     * @param days       x天后提交
     * @return
     */
    public static Date getAfterDateTime(Date sourceTime, int days) {

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(sourceTime);
        calendar.add(calendar.DATE, days);

        return calendar.getTime();
    }

    /**
     * 获得两者的时间差
     *
     * @param start
     * @param end
     * @return
     */
    public static long getTimeDifference(Date start, Date end) {
        return end.getTime() - start.getTime();
    }

    public static String dateToStr(Date dateDate, String format) {
        SimpleDateFormat formatter = new SimpleDateFormat(format);
        String dateString = formatter.format(dateDate);
        return dateString;
    }

    public static Date strToDateLong(String strDate) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        ParsePosition pos = new ParsePosition(0);
        Date strtodate = formatter.parse(strDate, pos);
        return strtodate;
    }


}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package com.hexiang.utils; import java.text.SimpleDateFormat; import java.util.*; public class CalendarUtil { public static void main(String args[]) { System.out.println("First day of week is : " + new SimpleDateFormat("yyyy-MM-dd") .format(getFirstDateByWeek(new Date()))); System.out.println("Last day of week is : " + new SimpleDateFormat("yyyy-MM-dd") .format(getLastDateByWeek(new Date()))); System.out.println("First day of month is : " + new SimpleDateFormat("yyyy-MM-dd") .format(getFirstDateByMonth(new Date()))); System.out.println("Last day of month is : " + new SimpleDateFormat("yyyy-MM-dd") .format(getLastDateByMonth(new Date()))); } /** * 获得所在星期的第一天 */ public static Date getFirstDateByWeek(Date date) { Calendar now = Calendar.getInstance(); now.setTime(date); int today = now.get(Calendar.DAY_OF_WEEK); int first_day_of_week = now.get(Calendar.DATE) + 2 - today; // 星期一 now.set(Calendar.DATE, first_day_of_week); return now.getTime(); } /** * 获得所在星期的最后一天 */ public static Date getLastDateByWeek(Date date) { Calendar now = Calendar.getInstance(); now.setTime(date); int today = now.get(Calendar.DAY_OF_WEEK); int first_day_of_week = now.get(Calendar.DATE) + 2 - today; // 星期一 int last_day_of_week = first_day_of_week + 6; // 星期日 now.set(Calendar.DATE, last_day_of_week); return now.getTime(); } /** * 获得所在月份的最后一天 * @param 当前月份所在的时间 * @return 月份的最后一天 */ public static Date getLastDateByMonth(Date date) { Calendar now = Calendar.getInstance(); now.setTime(date); now.set(Calendar.MONTH, now.get(Calendar.MONTH) + 1); now.set(Calendar.DATE, 1); now.set(Calendar.DATE, now.get(Calendar.DATE) - 1); now.set(Calendar.HOUR, 11); now.set(Calendar.MINUTE, 59); now.set(Calendar.SECOND, 59); return now.getTime(); } /** * 获得所在月份的第一天 * @param 当前月份所在的时间 * @return 月份的第一天 */ public static Date getFirstDateByMonth(Date date) { Calendar now = Calendar.getInstance(); now.setTime(date); now.set(Calendar.DATE, 0); now.set(Calendar.HOUR, 12); now.set(Calendar.MINUTE, 0); now.set(Calendar.SECOND, 0); return now.getTime(); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值