Package ru.bgcrm.util

Class TimeUtils

java.lang.Object
ru.bgcrm.util.TimeUtils

public class TimeUtils extends Object
  • Field Details

  • Constructor Details

    • TimeUtils

      public TimeUtils()
  • Method Details

    • getTypeFormat

      public static String getTypeFormat(String type)
      Date and time format string compatible with SimpleDateFormat.
      Parameters:
      type - type of date-time: FORMAT_TYPE_YMD,FORMAT_TYPE_YMDH, FORMAT_TYPE_YMDHM, FORMAT_TYPE_YMDHMS.
      Returns:
      matching date format or itself.
    • getDayOfWeekMask

      public static final int getDayOfWeekMask(Calendar date)
      Возвращает битовую маску дня недели.
      Parameters:
      date - дата
      Returns:
      1(понедельник), 2(вторник), ... 64(воскресенье)
    • getDayOfWeekPosition

      public static final int getDayOfWeekPosition(Calendar date)
      Возвращает порядок дня недели от понедельника, начиная с 1.
      Parameters:
      date -
      Returns:
    • getDayOfWeekPosition

      public static final int getDayOfWeekPosition(Date date)
    • getDayOfMonthMask

      public static final int getDayOfMonthMask(Calendar date)
      Битовая маска дня месяца.
      Parameters:
      date - дата
      Returns:
      1(01), 2(02), 4(03), 8(04), ... 2147483648(31)
    • getHourOfDayMask

      public static final int getHourOfDayMask(Calendar date)
      Битовая маска часа суток.
      Parameters:
      date -
      Returns:
      1(00), 2(01), 4(02), ... 8388608(23)
    • getMonthOfYearMask

      public static final int getMonthOfYearMask(Calendar date)
      Битовая маска месяца года.
      Parameters:
      date -
      Returns:
      1(январь), 2(февраль), ... 2048(декабрь)
    • checkMasks

      public static final boolean checkMasks(Calendar date, int hourOfDay, int dayOfWeek, int monthOfYear, int dayOfMonth)
      Проверка соответствует ли указанная дата, всем заданным маскам (если маска равна 0, в проверке не участвует).
      Parameters:
      date - проверяемая дата
      hourOfDay - часа
      dayOfWeek - маска дня неделе
      monthOfYear - маска месяца года
      dayOfMonth - маска дня месяца
      Returns:
      true - соотвествует или false - если нет
    • format

      public static final String format(Date date, String patternType)
      Формирует строку с датой по заданному шаблону.
      Parameters:
      date - исходная дата
      patternType - шаблон даты FORMAT_TYPE_YMD,FORMAT_TYPE_YMDH, FORMAT_TYPE_YMDHM, FORMAT_TYPE_YMDHMS.
      Returns:
      строка если исходная дата != null и шаблон задан корректно иначе null.
    • parse

      public static final Date parse(String date, String patternType)
    • parse

      public static final Date parse(String date, String patternType, Date defaultValue)
    • parsePeriod

      public static final void parsePeriod(String period, PeriodSet periodSet)
    • parsePeriod

      public static final void parsePeriod(String period, String patternType, PeriodSet periodSet)
    • formatPeriod

      public static final String formatPeriod(Date dateFrom, Date dateTo, String patternType)
    • formatPeriod

      public static final String formatPeriod(Calendar date1, Calendar date2)
      Формирует строку период дат.
      Parameters:
      date1 - начало периода.
      date2 - конец периода.
      Returns:
      строка "dd.MM.yyyy-dd.MM.yyyy", если один из парамеметров равен null, вместо соответствующей даты выводиться пустая строка, например "-dd.MM.yyyy", "dd.MM.yyyy-", "-"
    • formatPeriod

      public static final String formatPeriod(Date date1, Date date2)
      Формирует строку период.
      Parameters:
      date1 - начала периода.
      date2 - конец периода.
      Returns:
      строка "dd.MM.yyyy-dd.MM.yyyy", если один из парамеметров равен null, вместо соответствующей даты выводиться пустая строка, например "-dd.MM.yyyy", "dd.MM.yyyy-", "-".
    • formatDeltaTime

      public static final String formatDeltaTime(long delta)
      Форматирует разницу во времени
      Parameters:
      delta - разница во времени в миллисекундах
      Returns:
    • formatDateWithPattern

      @Deprecated public static final String formatDateWithPattern(Date date, String pattern)
      Deprecated.
      Форматирует дату явно указанным шаблоном. Можно использовать format(Date, String) - по виду шаблона разбирает сам, тип это или формат.
      Parameters:
      date -
      pattern -
      Returns:
    • parseDateWithPattern

      @Deprecated public static final Date parseDateWithPattern(String date, String pattern)
      Deprecated.
      Парсит дату из строки с явно указанным шаблоном. Можно использовать parse(String, String) - по виду шаблона разбирает сам, тип это или формат.
      Parameters:
      date -
      pattern -
      Returns:
    • formatSqlDate

      public static final String formatSqlDate(Date date)
      Форматирует дату в вид 'yyyy-MM-dd' для подстановки в SQL запрос, сразу окружённую кавычками.
      Parameters:
      date -
      Returns:
    • formatSqlDateNoQuote

      public static final String formatSqlDateNoQuote(Date date)
    • formatSqlDatetime

      public static final String formatSqlDatetime(Date date)
      Форматирует дату + время в вид 'yyyy-MM-dd' для подстановки в SQL запрос, сразу окружённую кавычками.
      Parameters:
      date -
      Returns:
    • formatSqlDatetimeNoQuote

      public static final String formatSqlDatetimeNoQuote(Date date)
    • convertCalendarToDate

      public static final Date convertCalendarToDate(Calendar calendar)
      Преобразование объекта Calendar в java.util.Date.
      Parameters:
      calendar - исходный объект Calendar.
      Returns:
      объект типа java.util.Date или null если исходный объект null.
    • convertSqlDateToDate

      public static final Date convertSqlDateToDate(Date date)
      Преобразование объекта java.sql.Date в java.util.Date.
      Parameters:
      date - исходный объект.
      Returns:
      объект типа java.util.Date или null если исходный объект null.
    • convertDateToCalendar

      public static final Calendar convertDateToCalendar(Date date)
      Преобразование java.util.Date в java.util.Calendar.
      Parameters:
      date - исходный объект.
      Returns:
      java.sql.Calendar, если date != null, иначе null.
    • convertTimestampToCalendar

      public static final Calendar convertTimestampToCalendar(Timestamp time)
      Преобразование java.sql.Timestamp в java.util.Calendar.
      Parameters:
      time - исходный объект.
      Returns:
      java.sql.Calendar, если time != null, иначе null.
    • convertTimestampToDate

      @Deprecated public static final Date convertTimestampToDate(Timestamp time)
      Deprecated.
      This converting is not needed at all, because Timestamp extends Date.
    • convertSqlDateToCalendar

      public static final Calendar convertSqlDateToCalendar(Date date)
      Превращает SQL-дату в календарь.
      Parameters:
      date - дата.
      Returns:
    • convertCalendarToSqlDate

      public static final Date convertCalendarToSqlDate(Calendar calendar)
      Преобразование объекта Calendar в java.sql.Date.
      Parameters:
      calendar - исходный объект.
      Returns:
      java.sql.Date, если calendar != null, иначе null.
    • convertDateToSqlDate

      public static final Date convertDateToSqlDate(Date date)
      Преобразование объекта java.util.Date в java.sql.Date.
      Parameters:
      date - исходный объект.
      Returns:
      java.sql.Date, если date != null, иначе null.
    • convertCalendarToTimestamp

      public static final Timestamp convertCalendarToTimestamp(Calendar calendar)
      Преобразование объекта java.util.Calendar в java.sql.Timestamp
      Parameters:
      calendar - исходный объект.
      Returns:
      java.sql.Timestamp, если calendar != null, иначе null.
    • convertDateToTimestamp

      @Deprecated public static final Timestamp convertDateToTimestamp(Date date)
      Deprecated.
    • convertDateToXMLCalendar

      public static final XMLGregorianCalendar convertDateToXMLCalendar(Date date)
    • convertCalendarToXMLCalendar

      public static final XMLGregorianCalendar convertCalendarToXMLCalendar(GregorianCalendar calendar)
    • convertLongToTimestamp

      public static final Timestamp convertLongToTimestamp(long millis)
      Преобразование long в java.sql.Timestamp.
      Parameters:
      calendar - исходный объект.
      Returns:
      java.sql.Timestamp.
    • convertLongToTimestamp

      public static final Timestamp convertLongToTimestamp(Long millis)
      Преобразование java.lang.Long в java.sql.Timestamp.
      Parameters:
      millis - сходный объект.
      Returns:
      java.sql.Timestamp, если millis != null, иначе null.
    • getDays

      @Deprecated public static final int getDays(Calendar date1, Calendar date2)
      Deprecated.
      Возвращает разницу в днях
      Parameters:
      date1 -
      date2 -
      Returns:
    • daysDelta

      public static final int daysDelta(Date dayFrom, Date dayTo)
      24h days difference between to dates. The method is time-proven, but since Java 8 there is also available:
      invalid @link
      {@link java.time.temporal.ChronoUnit#DAYS#between(java.time.temporal.Temporal, java.time.temporal.Temporal)
      }
      Parameters:
      dayFrom -
      dayTo -
      Returns:
    • daysDelta

      public static final int daysDelta(Calendar dayFrom, Calendar dayTo)
    • hourDelta

      public static final int hourDelta(Calendar hourFrom, Calendar hourTo)
      Возвращает длительность периода между hourFrom и hourTo в часах.
      Parameters:
      hourFrom - дата начала периода.
      hourTo - дата окончания периода.
      Returns:
      длительность периода в часах.
    • monthsDelta

      public static final int monthsDelta(Date dateFrom, Date dateTo)
      Возвращает длительность периода между dateFrom и dateTo в месяцах.
      Parameters:
      dateFrom - дата начала периода.
      dateTo - дате окончания периода.
      Returns:
      длительность периода в месяцах.
    • monthsDelta

      public static final int monthsDelta(Calendar dateFrom, Calendar dateTo)
      Возвращает длительность периода между dateFrom и dateTo в месяцах.
      Parameters:
      dateFrom - дата начала периода.
      dateTo - дате окончания периода.
      Returns:
      длительность периода в месяцах.
    • dateBefore

      public static boolean dateBefore(Calendar date1, Calendar date2)
      Проверка date1 invalid input: '<' date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!)
      Parameters:
      date1 - первая дата.
      date2 - вторая дата.
      Returns:
      true - date1 invalid input: '<' date2, иначе false.
    • dateBefore

      public static boolean dateBefore(Date date1, Date date2)
      Проверка date1 invalid input: '<' date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).
      Parameters:
      date1 - первая дата.
      date2 - вторая дата.
      Returns:
      true - date1 invalid input: '<' date2, иначе false
    • dateEqual

      public static boolean dateEqual(Calendar date1, Calendar date2)
      Проверка date1 == date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).
      Parameters:
      date1 - первая дата.
      date2 - вторая дата.
      Returns:
      true - date1 == date2, иначе false.
    • dateEqual

      public static boolean dateEqual(Date date1, Date date2)
      Проверка date1 == date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).
      Parameters:
      date1 - первая дата.
      date2 - вторая дата.
      Returns:
      true - date1 == date2, иначе false
    • dateHourEqual

      public static boolean dateHourEqual(Calendar dtime1, Calendar dtime2)
      Проверка date1 == date2 (С ТОЧНОСТЬЮ ДО ЧАСА ДНЯ!!!).
      Parameters:
      dtime1 - первая дата + время.
      dtime2 - вторая дата + время.
      Returns:
      true - date1 == date2, иначе false.
    • dateBeforeOrEq

      public static boolean dateBeforeOrEq(Calendar date1, Calendar date2)
      Проверка date1 invalid input: '<'= date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).
      Parameters:
      date1 - первая дата.
      date2 - вторая дата.
      Returns:
      true - date1 invalid input: '<'= date2, иначе false.
    • dateBeforeOrEq

      public static boolean dateBeforeOrEq(Date date1, Date date2)
      Проверка date1 invalid input: '<'= date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).
      Parameters:
      date1 - первая дата.
      date2 - вторая дата.
      Returns:
      true - date1 invalid input: '<'= date2, иначе false
    • dateInRange

      public static final boolean dateInRange(Calendar checking, Calendar date1, Calendar date2)
      Проверка входит ли проверяемая дата в заданный период.
      Parameters:
      checking - проверяемая дата.
      date1 - начало заданого периода.
      date2 - конец заданого периода.
      Returns:
      true - входит, false - нет.
    • dateInRange

      public static final boolean dateInRange(Date checking, Date date1, Date date2)
      Проверка входит ли проверяемая дата в заданный период.
      Parameters:
      checking - проверяемая дата.
      date1 - начало заданого периода.
      date2 - конец заданого периода.
      Returns:
      true - входит, false - нет.
    • periodInRange

      public static final boolean periodInRange(Calendar checkingDate1, Calendar checkingDate2, Calendar date1, Calendar date2)
      Проверка входит ли проверяемый период в заданный.
      Parameters:
      checkingDate1 - начала проверяемого период.
      checkingDate2 - конец проверяемого периода.
      date1 - начало заданого периода.
      date2 - конец заданого периода.
      Returns:
      true - входит, false - нет.
    • checkDateIntervalsIntersection

      public static boolean checkDateIntervalsIntersection(Calendar date1, Calendar date2, Calendar dateFrom, Calendar dateTo)
      Проверка пересечения двух интервалов дат.
      Parameters:
      date1 - левая граница первого интервала
      date2 - правая граница первого интервала
      dateFrom - левая граница второго интервала
      dateTo - правай граница второго интервала
      Returns:
    • moveToEndOfMonth

      public static final void moveToEndOfMonth(Calendar date)
      Устанавливает дату на последний день месяца.
      Parameters:
      date - исходная дата.
    • moveToStartNextDay

      public static final void moveToStartNextDay(Calendar date)
      Увеличивает date на 1 день и сбрасывает время в 00:00:00.0.
      Parameters:
      date - исходная дата.
    • clear_MIN_MIL_SEC

      @Deprecated public static final Calendar clear_MIN_MIL_SEC(Calendar time)
      Deprecated.
      Устанавливает минуты, секунды и миллисекунды в ноль.
      Parameters:
      time - исходный объект.
      Returns:
    • clear_HOUR_MIN_MIL_SEC

      @Deprecated public static final Calendar clear_HOUR_MIN_MIL_SEC(Calendar time)
      Deprecated.
      Сброс времени на начало дня.
      Parameters:
      time - исходная дата.
      Returns:
      сброшенная дата (часы=минуты=секунды=мсек=0).
    • clear_HOUR_MIN_MIL_SEC

      @Deprecated public static final Date clear_HOUR_MIN_MIL_SEC(Date time)
      Deprecated.
      Сброс времени на начало дня.
      Parameters:
      time - исходная дата.
      Returns:
      сброшенная дата (часы=минуты=секунды=мсек=0).
    • getEndMonth

      public static final Date getEndMonth(Date date)
      Last day of a month
      Parameters:
      date - any day of the month
      Returns:
      null if is null, else the last day of the month
    • getNextDay

      public static final Calendar getNextDay(Calendar date)
      Следующий от даты день.
      Parameters:
      date - дата
      Returns:
    • getPrevDay

      public static final Calendar getPrevDay(Calendar date)
      Предыдущий от даты день.
      Parameters:
      date -
      Returns:
    • getNextDay

      public static final Date getNextDay(Date date)
      Следующий от даты день.
      Parameters:
      date - дата
      Returns:
    • getPrevDay

      public static final Date getPrevDay(Date date)
      Предыдущий от даты день.
      Parameters:
      date -
      Returns:
    • getPrevMonth

      public static final Date getPrevMonth()
      Returns:
      first day in the prevous month from the current time.
    • getDateWithOffset

      @Deprecated public static final Date getDateWithOffset(int offset)
      Deprecated.
      Returns the date with offset in days from now.
      Parameters:
      offset - positive or negative offset
      Returns:
      date with the offset
    • getDateHour

      public static Date getDateHour(Date date, int hour)
      Дата с каким-либо часом.
    • getShortDateName

      public static String getShortDateName(Date date)
      Возвращает сокращенное название дня недели (пн - понедельник, вт - вторник и т.д.)
      Parameters:
      date - Дата, на основании которой определяется день недели
      Returns:
      String сокращенное название дня недели
    • timezoneChange

      public static Date timezoneChange(Date time, TimeZone fromTz, TimeZone toTz)
      Корректирует объект Date, так, чтобы получилось такое же локальное время но в другой таймзоне.
      Parameters:
      time - исходный объект Date с каким-то временем для таймзоны fromTz.
      fromTz - исходная таймзона.
      toTz - целевая таймзона.
      Returns: