Java日期工具类DateUtils详解

举报
Java李杨勇 发表于 2022/08/31 20:35:45 2022/08/31
【摘要】 可以对指定的日期新增年、月、周、日、小时、分钟、秒、毫秒进行操作package com.crit.common.utils;import org.apache.commons.lang.StringUtils;import org.joda.time.DateTime;import org.joda.time.LocalDate;import org.joda.time.format.Dat...

可以对指定的日期新增年、月、周、日、小时、分钟、秒、毫秒进行操作

package com.crit.common.utils;

import org.apache.commons.lang.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

import java.text.SimpleDateFormat;
import java.util.Date;

/**

  • 日期处理
    /
    public class DateUtils {
    /
    * 时间格式(yyyy-MM-dd) /
    public final static String DATE_PATTERN = “yyyy-MM-dd”;
    /
    * 时间格式(yyyy-MM-dd HH:mm:ss) /
    public final static String DATE_TIME_PATTERN = “yyyy-MM-dd HH:mm:ss”;
    /
    *

    • 日期格式化 日期格式为:yyyy-MM-dd
    • @param date 日期
    • @return 返回yyyy-MM-dd格式日期
      */
      public static String format(Date date) {
      return format(date, DATE_PATTERN);
      }

    /**

    • 日期格式化 日期格式为:yyyy-MM-dd
    • @param date 日期
    • @param pattern 格式,如:DateUtils.DATE_TIME_PATTERN
    • @return 返回yyyy-MM-dd格式日期
      */
      public static String format(Date date, String pattern) {
      if(date != null){
      SimpleDateFormat df = new SimpleDateFormat(pattern);
      return df.format(date);
      }
      return null;
      }

    /**

    • 字符串转换成日期

    • @param strDate 日期字符串

    • @param pattern 日期的格式,如:DateUtils.DATE_TIME_PATTERN
      */
      public static Date stringToDate(String strDate, String pattern) {
      if (StringUtils.isBlank(strDate)){
      return null;
      }

      DateTimeFormatter fmt = DateTimeFormat.forPattern(pattern);
      return fmt.parseLocalDateTime(strDate).toDate();
      }

    /**

    • 根据周数,获取开始日期、结束日期

    • @param week 周期 0本周,-1上周,-2上上周,1下周,2下下周

    • @return 返回date[0]开始日期、date[1]结束日期
      */
      public static Date[] getWeekStartAndEnd(int week) {
      DateTime dateTime = new DateTime();
      LocalDate date = new LocalDate(dateTime.plusWeeks(week));

      date = date.dayOfWeek().withMinimumValue();
      Date beginDate = date.toDate();
      Date endDate = date.plusDays(6).toDate();
      return new Date[]{beginDate, endDate};
      }

    /**

    • 对日期的【秒】进行加/减
    • @param date 日期
    • @param seconds 秒数,负数为减
    • @return 加/减几秒后的日期
      */
      public static Date addDateSeconds(Date date, int seconds) {
      DateTime dateTime = new DateTime(date);
      return dateTime.plusSeconds(seconds).toDate();
      }

    /**

    • 对日期的【分钟】进行加/减
    • @param date 日期
    • @param minutes 分钟数,负数为减
    • @return 加/减几分钟后的日期
      */
      public static Date addDateMinutes(Date date, int minutes) {
      DateTime dateTime = new DateTime(date);
      return dateTime.plusMinutes(minutes).toDate();
      }

    /**

    • 对日期的【天】进行加/减
    • @param date 日期
    • @param days 天数,负数为减
    • @return 加/减几天后的日期
      */
      public static Date addDateDays(Date date, int days) {
      DateTime dateTime = new DateTime(date);
      return dateTime.plusDays(days).toDate();
      }

    /**

    • 对日期的【周】进行加/减
    • @param date 日期
    • @param weeks 周数,负数为减
    • @return 加/减几周后的日期
      */
      public static Date addDateWeeks(Date date, int weeks) {
      DateTime dateTime = new DateTime(date);
      return dateTime.plusWeeks(weeks).toDate();
      }

    /**

    • 对日期的【月】进行加/减
    • @param date 日期
    • @param months 月数,负数为减
    • @return 加/减几月后的日期
      */
      public static Date addDateMonths(Date date, int months) {
      DateTime dateTime = new DateTime(date);
      return dateTime.plusMonths(months).toDate();
      }

    /**

    • 对日期的【年】进行加/减
    • @param date 日期
    • @param years 年数,负数为减
    • @return 加/减几年后的日期
      */
      public static Date addDateYears(Date date, int years) {
      DateTime dateTime = new DateTime(date);
      return dateTime.plusYears(years).toDate();
      }

如果觉得本文对你有帮助,不妨点赞收藏起来把,说不定下次要用就找不到了呢。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。