Class Dates

java.lang.Object
cn.xuanyuanli.core.util.Dates

public class Dates extends Object
日期工具类
Author:
John Li
  • Field Details

    • logger

      private static final org.slf4j.Logger logger
      日志记录器
    • UTC_P8

      private static final ZoneOffset UTC_P8
      utc p8
    • DEFAULT_PATTERNS

      private static final String[] DEFAULT_PATTERNS
      默认模式
  • Constructor Details

    • Dates

      public Dates()
  • Method Details

    • formatDate

      public static String formatDate(Date date, String pattern)
      格式化时间
      Parameters:
      date - 待格式化的时间
      pattern - 格式化规则
      Returns:
      String
    • formatDate

      public static String formatDate(Date date, String pattern, TimeZone zone)
      格式化时间
      Parameters:
      date - 待格式化的时间
      pattern - 格式化规则
      zone - 时区
      Returns:
      String
    • getDateFromMillis

      public static Date getDateFromMillis(Long time)
      从秒值或毫秒值获得Date对象
      Parameters:
      time - epoch的秒值或毫秒值
      Returns:
      Date
    • validTime

      private static boolean validTime(Long time)
      验证时间戳是否符合规则
      Parameters:
      time - epoch的秒值或毫秒值
      Returns:
      boolean
    • getMillis

      private static long getMillis(Long time)
      获得毫秒值
      Parameters:
      time - epoch的秒值或毫秒值
      Returns:
      long
    • formatTimeMillis

      public static String formatTimeMillis(Long time, String pattern)
      格式化时间
      Parameters:
      time - 待格式化的时间
      pattern - 格式化规则
      Returns:
      String
    • formatTimeMillisByDatePattern

      public static String formatTimeMillisByDatePattern(long times)
      按照{yyyy-MM-dd}格式化时间
      Parameters:
      times - epoch的秒值或毫秒值
      Returns:
      String
    • formatTimeMillisByFullDatePattern

      public static String formatTimeMillisByFullDatePattern(long times)
      按照{yyyy-MM-dd HH:mm:ss}格式化时间
      Parameters:
      times - epoch的秒值或毫秒值
      Returns:
      String
    • parse

      public static Date parse(String source, String pattern)
      根据pattern规则转换字符串为Date
      Parameters:
      source - 源
      pattern - 模式
      Returns:
      Date
    • parse

      public static Date parse(String source, String pattern, TimeZone timeZone)
      根据pattern和时区转换字符串为Date
      Parameters:
      source - 源
      pattern - 模式
      timeZone - 时区
      Returns:
      Date
    • parse

      public static Date parse(String source)
      根据DEFAULT_PATTERNS转换字符串为Date
      Parameters:
      source - 源
      Returns:
      Date
    • parseToTimeMillis

      public static long parseToTimeMillis(String source, String pattern)
      解析时间,米尔斯
      Parameters:
      source - 源
      pattern - 模式
      Returns:
      long
      See Also:
    • parseToTimeMillis

      public static long parseToTimeMillis(String source)
      解析时间,米尔斯
      Parameters:
      source - 源
      Returns:
      long
      See Also:
    • getWeekMark

      public static int getWeekMark(Date date)
      根据时间返回当前是星期几
      Parameters:
      date - 日期
      Returns:
      0周日 1周一 2周二 3周三 4周四 5周五 6周六
    • now

      public static long now()
      获得当前时间的epoch秒值
      Returns:
      long
    • getBeforeByMonth

      public static Date getBeforeByMonth()
      获取当前日期前一个月日期
      Returns:
      Date
    • beforNumDay

      public static long beforNumDay(long time, int day)
      获得指定日期前(后)x天的日期
      Parameters:
      time - 时间戳
      day - 天数(如果day数为负数,说明是此日期前的天数)
      Returns:
      时间戳(秒值)
    • getLastDayOfMonth

      public static int getLastDayOfMonth(Date date)
      获取当前月份的最后一天
      Parameters:
      date - 日期
      Returns:
      返回日期的原始int值,从1到31
    • getLastDayOfMonth

      public static int getLastDayOfMonth()
      获取当前月份的最后一天
      Returns:
      返回日期的原始int值,从1到31
    • countDown

      public static long[] countDown(long destTime)
      获得针对目标时间的倒计时
      Parameters:
      destTime - epoch格式的目标时间
      Returns:
      数组中四个元素,依次是:日、时、分、秒
    • endDown

      public static long[] endDown(long startTime, long endTime)
      计算两个日期之间的差
      Parameters:
      startTime - epoch格式的开始时间
      endTime - epoch格式的结束时间
      Returns:
      数组中四个元素,依次是:日、时、分、秒
    • endOfToday

      public static long endOfToday()
      据今天结束还有多少秒
      Returns:
      long
    • maximumTimeMillisOfToday

      public static long maximumTimeMillisOfToday()
      今天的结束时间
      Returns:
      返回millis值
    • minimumTimeMillisOfToday

      public static long minimumTimeMillisOfToday()
      今天开始的时间
      Returns:
      返回millis值
    • formatNow

      public static String formatNow()
      以‘yyyy-MM-dd HH:mm:ss’格式化当前日期
      Returns:
      String
    • formatNow

      public static String formatNow(String pattern)
      以指定的pattern格式化当前日期
      Parameters:
      pattern - 模式
      Returns:
      String
    • endOfDate

      public static long endOfDate(String dateStr)
      获取日期当天结束时间
      Parameters:
      dateStr - yyyy-MM-dd格式的字符串
      Returns:
      时间戳(秒值)
    • beginOfDate

      public static long beginOfDate(String datestr)
      获取日期当天开始时间
      Parameters:
      datestr - yyyy-MM-dd格式的时间
      Returns:
      时间戳(秒值)
    • getMonthDateList

      public static List<Date> getMonthDateList(Date date)
      获取入参日期的当月日历(包含往前和往后的补充数据,从周日开始到周六结束的完整日历)
      Parameters:
      date - 日期
      Returns:
      日历数据会从周日开始到周六结束,集合中的日期都是一天的开始时间
    • getCurrentMonthDateList

      public static List<Date> getCurrentMonthDateList(Date date)
      获取当月日历天数
      Parameters:
      date - 日期
      Returns:
      集合中的日期都是一天的开始时间
    • isFirstDayOfMonth

      public static boolean isFirstDayOfMonth(Long time)
      查看当前时间是否是所在月第一天
      Parameters:
      time - 时间
      Returns:
      boolean
    • parseRangeDate

      public static Long[] parseRangeDate(String dataRange, String pattern)
      解析一个范围日期
      Parameters:
      dataRange - 时间区间,以 - 作为分隔符
      pattern - 时间格式
      Returns:
      秒值数组
    • parseAceRangeDate

      public static Long[] parseAceRangeDate(String dataRange)
      解析ACE模板获取的起止日期
      Parameters:
      dataRange - 起止时间(支持模板:MM/dd/yyyy-MM/dd/yyyy)
      Returns:
      Long
    • getEpochSecond

      public static long getEpochSecond(LocalDate localDate)
      LocalDate转换为秒值(从1970年初开始计算)
      Parameters:
      localDate - 当地日期
      Returns:
      long
    • getEpochSecond

      public static long getEpochSecond(LocalDateTime localDateTime)
      LocalDateTime转换为秒值(从1970年初开始计算)
      Parameters:
      localDateTime - 当地日期时间
      Returns:
      long
    • dateToLocalDateTime

      public static LocalDateTime dateToLocalDateTime(Date date)
      当地日期时间
      Parameters:
      date - 日期
      Returns:
      LocalDateTime
    • isSameDay

      public static boolean isSameDay(Long time1, Long time2)
      两个时间戳是否为同一天
      Parameters:
      time1 - time1
      time2 - time2
      Returns:
      boolean
    • humanReadableSecord

      public static String humanReadableSecord(long secord)
      可读性好的秒值
      Parameters:
      secord - 西科
      Returns:
      String
    • humanReadableMillis

      public static String humanReadableMillis(long millis)
      可读性好的毫秒值
      Parameters:
      millis - 米尔斯
      Returns:
      String
    • humanReadableDuration

      public static String humanReadableDuration(Duration duration)
      可读性好的时间量
      Parameters:
      duration - 持续时间
      Returns:
      String
    • between

      public static long between(ChronoUnit unit, long time1, long time2)
      计算两个时间戳之间的距离
      Parameters:
      unit - 周期单位
      time1 - 起点时间
      time2 - 终点时间
      Returns:
      long