日期工具类

博客围绕日期工具类展开,但具体内容缺失。日期工具类在信息技术中可用于处理日期相关操作,如日期计算、格式化等,能提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public final class DateUtil {

	private static Map<String, ThreadLocal<SimpleDateFormat>> SDF_MAP = new HashMap<>();

	static {
		String formats[] ={"M.d","yyyy-MM-dd", "yyyy/MM/dd", "yyyy-MM-dd HH:mm:ss", "yyyyMMddhhmmss",
				"yyyyMMdd", "yyyyMMddhhmmssSSS", "yyyyMM", "yyyy/MM/dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy.MM.dd","yyyy.MM.dd HH:mm","yyyy.MM.dd HH", "MMdd"};

		for(String format : formats){
			SDF_MAP.put(format, new ThreadLocal<SimpleDateFormat>() {
				@Override
				protected SimpleDateFormat initialValue() {
					return new SimpleDateFormat(format);
				}
			});
		}
	}

	/**
	 * MM.dd
	 */
	public static SimpleDateFormat SDF0() {
		return SDF_MAP.get("M.d").get();
	}

	/**
	 * yyyy-MM-dd
	 */
	public static SimpleDateFormat SDF1() {
		return SDF_MAP.get("yyyy-MM-dd").get();
	}

	/**
	 * yyyy/MM/dd
	 */
	public static SimpleDateFormat SDF2() {
		return SDF_MAP.get("yyyy/MM/dd").get();
	}
	/**
	 * yyyy-MM-dd HH:mm:ss
	 */
	public static SimpleDateFormat SDF3() {
		return SDF_MAP.get("yyyy-MM-dd HH:mm:ss").get();
	}

	/**
	 * yyyyMMddhhmmss
	 */
	public static SimpleDateFormat SDF4() {
		return SDF_MAP.get("yyyyMMddhhmmss").get();
	}

	/**
	 * yyyyMMdd
	 */
	public static SimpleDateFormat SDF5() {
		return SDF_MAP.get("yyyyMMdd").get();
	}

	/**
	 * yyyyMMddhhmmssSSS
	 */
	public static SimpleDateFormat SDF6() {
		return SDF_MAP.get("yyyyMMddhhmmssSSS").get();
	}
	/**
	 * yyyyMM
	 */
	public static SimpleDateFormat SDF7() {
		return SDF_MAP.get("yyyyMM").get();
	}

	/**
	 * yyyy/MM/dd HH:mm:ss
	 */
	public static SimpleDateFormat SDF8() {
		return SDF_MAP.get("yyyy/MM/dd HH:mm:ss").get();
	}
	/**
	 * yyyy-MM-dd HH:mm:ss
	 */
	public static SimpleDateFormat SDF9() {
		return SDF_MAP.get("yyyy-MM-dd HH:mm").get();
	}

	/**
	 * yyyy.MM.dd
	 */
	public static SimpleDateFormat SDF12() {
		return SDF_MAP.get("yyyy.MM.dd HH:mm").get();
	}

	public static SimpleDateFormat SDF10() {
		return SDF_MAP.get("yyyy.MM.dd").get();
	}

	/**
	 * MMdd
	 */
	public static SimpleDateFormat SDF11() {
		return SDF_MAP.get("MMdd").get();
	}

	/**
	 * MMdd
	 */
	public static SimpleDateFormat SDF13() {
		return SDF_MAP.get("yyyy.MM.dd HH").get();
	}

	/**
	 * 增加天数(负值为减)
	 */
	public static synchronized Date addDay(Date d, int dayToAdd) {
		Calendar ca = Calendar.getInstance();
		ca.setTime(d);
		ca.add(Calendar.DAY_OF_MONTH, dayToAdd);
		return ca.getTime();
	}

	/**
	 * 增加小时(负值为减)
	 */
	public static synchronized Date addHour(Date d, int hour) {
		Calendar ca = Calendar.getInstance();
		ca.setTime(d);
		ca.add(Calendar.HOUR, hour);
		return ca.getTime();
	}

	/**
	 * 增加分钟(负值为减)
	 */
	public static synchronized Date addMinutes(Date d, int minutes) {
		Calendar ca = Calendar.getInstance();
		ca.setTime(d);
		ca.add(Calendar.MINUTE, minutes);
		return ca.getTime();
	}

	/**
	 * 当前时间月份加减月份(负值为减)
	 */
	public static synchronized int getMonth(Date d, int num) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(d);
		int month = calendar.get(Calendar.MONTH) + num;
		return month;
	}

	/**
	 * 判断当天是当前月的第几天
	 */
	public static synchronized int getToday(Date d) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(new Date());
		int today = calendar.get(calendar.DAY_OF_MONTH);
		return today;
	}

	/**
	 * 增加秒数(负值为减)
	 */
	public static synchronized Date addSeconds(Date d, int seconds) {
		Calendar ca = Calendar.getInstance();
		ca.setTime(d);
		ca.add(Calendar.SECOND, seconds);
		return ca.getTime();
	}

	/**
	 * 获取日期的起始2012-12-12 return 2012-12-12 00:00:00
	 */
	public static synchronized Date getStartDayTime(String source) throws ParseException {
		return SDF3().parse(source + " 00:00:00");
	}
	/**
	 * 获取日期的结束2012-12-12 return 2012-12-12 23:59:59
	 */
	public static synchronized Date getEndDayTime(String source) throws ParseException {
		return SDF3().parse(source + " 23:59:59");
	}
	/**
	 * 获取不同日期格式
	 */
	public static synchronized Date getDateTime(String source, SimpleDateFormat formart) throws ParseException{
		return formart.parse(source);
	}
	/**
	 * 增加秒数(负值为减)
	 */
	public static synchronized int getDiffDays(Date d1, Date d2) {
		long t1 = d1.getTime();
		long t2 = d2.getTime();
		int days = (int) ((t2 - t1) / (24 * 60 * 60 * 1000));
		return days;
	}

	public static Date getDate(int hour,int minute,int second,int millisecond){

		Calendar calendar  = Calendar.getInstance();
		calendar.set(Calendar.HOUR_OF_DAY,hour);
		calendar.set(Calendar.MINUTE,minute);
		calendar.set(Calendar.SECOND,second);
		calendar.set(Calendar.MILLISECOND,millisecond);
		return calendar.getTime();
	}

	//计算两个时间之间的天数只差
	public static int daysBetween(Date date1,Date date2)
	{
		Calendar cal = Calendar.getInstance();
		cal.setTime(date1);
		long time1 = cal.getTimeInMillis();
		cal.setTime(date2);
		long time2 = cal.getTimeInMillis();
		long between_days=(time2-time1)/(1000*3600*24);

		return Integer.parseInt(String.valueOf(between_days));
	}


	public static boolean isSameDay(Date date){
		Calendar paramDate = Calendar.getInstance();
		paramDate.setTime(date);
		int param_year = paramDate.get(Calendar.YEAR);
		int param_month = paramDate.get(Calendar.MONTH);
		int param_day = paramDate.get(Calendar.DAY_OF_MONTH);

		Calendar   currentDate = Calendar.getInstance();

		int year = currentDate.get(Calendar.YEAR);
		int month = currentDate.get(Calendar.MONTH);
		int day = currentDate.get(Calendar.DAY_OF_MONTH);

		if(param_year!=year){
			return false;
		}
		if(param_month!=month){
			return false;
		}
		if(param_day!=day){
			return false;
		}

		return true;
	}
}

import org.springframework.stereotype.Component;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;

@Component
public class LocalDateTimeUtil {

    private static final DateTimeFormatter formatter0 = DateTimeFormatter.ofPattern("M.d");
    private static final DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    private static final DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    private static final DateTimeFormatter formatter13 = DateTimeFormatter.ofPattern("yyyy.MM.dd HH");

    public static String formatter0(LocalDateTime date) {
        return formatter0.format(date);
    }

    public static String formatter1(LocalDateTime date) {
        return formatter1.format(date);
    }

    public static String formatter3(LocalDateTime date) {
        return formatter3.format(date);
    }

    public static String formatter13(LocalDateTime date) {
        return formatter13.format(date);
    }


    /**
     * 获取日期的起始2012-12-12 return 2012-12-12 00:00:00
     */
    public static Date getStartDayTime(String source) throws ParseException {
        return toDate(LocalDateTime.parse(source + " 00:00:00",formatter3));
    }
    /**
     * 获取日期的结束2012-12-12 return 2012-12-12 23:59:59
     */
    public static Date getEndDayTime(String source) throws ParseException {
        return toDate(LocalDateTime.parse(source + " 23:59:59",formatter3));
    }

    /**
     * 增加天数(负值为减)
     */
    public static synchronized Date addDay(Date d, int dayToAdd) {
        Calendar ca = Calendar.getInstance();
        ca.setTime(d);
        ca.add(Calendar.DAY_OF_MONTH, dayToAdd);
        return ca.getTime();
    }

    /**
     * 获取不同日期格式
     */
    public static synchronized Date getDateTime(String source, SimpleDateFormat formart) throws ParseException{
        return formart.parse(source);
    }

    private static LocalDateTime toLocalDateTime(Date date) {
        ZoneId zone = ZoneId.systemDefault();
        Instant instant = date.toInstant();
        LocalDateTime localDateTime = LocalDateTime.ofInstant(instant,zone);
        return localDateTime;
    }

    private static Date toDate(LocalDateTime localDateTime) {
        ZoneId zone = ZoneId.systemDefault();
        Instant instant = localDateTime.atZone(zone).toInstant();
        Date date = Date.from(instant);
        return date;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值