您的位置:首页 > 教育 > 锐评 > Java中公用日期工具类拿走、直接用

Java中公用日期工具类拿走、直接用

2024/10/6 2:31:05 来源:https://blog.csdn.net/a_beiyo/article/details/141967348  浏览:    关键词:Java中公用日期工具类拿走、直接用
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;public class DateUtils {// 日期格式:yyyy-MM-ddprivate static final String DATE_FORMAT = "yyyy-MM-dd";// 日期时间格式:yyyy-MM-dd HH:mm:ssprivate static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";// 默认日期格式化对象private static final SimpleDateFormat dateFormatter = new SimpleDateFormat(DATE_FORMAT, Locale.getDefault());// 默认日期时间格式化对象private static final SimpleDateFormat dateTimeFormatter = new SimpleDateFormat(DATETIME_FORMAT, Locale.getDefault());static {// 设置默认时区为系统默认dateFormatter.setTimeZone(TimeZone.getDefault());dateTimeFormatter.setTimeZone(TimeZone.getDefault());}/*** 获取当前日期的字符串表示,格式为 yyyy-MM-dd* @return 当前日期的字符串表示*/public static String getCurrentDateString() {return dateFormatter.format(new Date());}/*** 获取当前日期时间的字符串表示,格式为 yyyy-MM-dd HH:mm:ss* @return 当前日期时间的字符串表示*/public static String getCurrentDateTimeString() {return dateTimeFormatter.format(new Date());}/*** 将字符串转换为日期对象,格式为 yyyy-MM-dd* @param dateString 日期字符串* @return 对应的日期对象* @throws ParseException 如果解析日期字符串失败*/public static Date parseDate(String dateString) throws ParseException {return dateFormatter.parse(dateString);}/*** 将字符串转换为日期时间对象,格式为 yyyy-MM-dd HH:mm:ss* @param dateTimeString 日期时间字符串* @return 对应的日期时间对象* @throws ParseException 如果解析日期时间字符串失败*/public static Date parseDateTime(String dateTimeString) throws ParseException {return dateTimeFormatter.parse(dateTimeString);}/*** 获取当前时间的毫秒值* @return 当前时间的毫秒值*/public static long getCurrentTimeInMillis() {return System.currentTimeMillis();}/*** 根据日期计算日期差值(以天为单位)* @param startDate 开始日期* @param endDate 结束日期* @return 日期差值(以天为单位)*/public static long daysBetween(Date startDate, Date endDate) {long diffInMillis = endDate.getTime() - startDate.getTime();return diffInMillis / (1000 * 60 * 60 * 24);}/*** 获取某个月的第一天* @param year 年份* @param month 月份(1-12)* @return 该月份的第一天*/public static Date getFirstDayOfMonth(int year, int month) {Calendar calendar = Calendar.getInstance();calendar.set(year, month - 1, 1, 0, 0, 0);calendar.set(Calendar.MILLISECOND, 0);return calendar.getTime();}/*** 获取某个月的最后一天* @param year 年份* @param month 月份(1-12)* @return 该月份的最后一天*/public static Date getLastDayOfMonth(int year, int month) {Calendar calendar = Calendar.getInstance();calendar.set(year, month - 1, 1);calendar.add(Calendar.MONTH, 1);calendar.add(Calendar.DAY_OF_MONTH, -1);calendar.set(Calendar.HOUR_OF_DAY, 23);calendar.set(Calendar.MINUTE, 59);calendar.set(Calendar.SECOND, 59);calendar.set(Calendar.MILLISECOND, 0);return calendar.getTime();}/*** 添加指定天数到某个日期* @param date 原始日期* @param days 要添加的天数* @return 新的日期*/public static Date addDays(Date date, int days) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.DAY_OF_MONTH, days);return calendar.getTime();}/*** 获取两个日期之间的差异(以秒为单位)* @param startDate 开始日期* @param endDate 结束日期* @return 日期差异(以秒为单位)*/public static long secondsBetween(Date startDate, Date endDate) {long diffInMillis = endDate.getTime() - startDate.getTime();return diffInMillis / 1000;}
}

说明:

  1. 日期格式和时间格式

    • 使用 SimpleDateFormat 进行日期和时间的格式化和解析。
    • DATE_FORMATDATETIME_FORMAT 定义了日期和日期时间的格式。
  2. 常用方法

    • getCurrentDateString()getCurrentDateTimeString():获取当前日期和时间的字符串表示。
    • parseDate()parseDateTime():将字符串解析为 Date 对象。
    • getCurrentTimeInMillis():获取当前时间的毫秒值。
    • daysBetween():计算两个日期之间的天数。
    • getFirstDayOfMonth()getLastDayOfMonth():获取某个月的第一天和最后一天。
    • addDays():在某个日期上添加指定的天数。
    • secondsBetween():计算两个日期之间的秒数。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com