Package ru.bgcrm.util

# Class TimeUtils

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

public class TimeUtils extends Object

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `CONF_KEY_FORMAT_YMD`
  `static final String`
  `CONF_KEY_FORMAT_YMDH`
  `static final String`
  `CONF_KEY_FORMAT_YMDHM`
  `static final String`
  `CONF_KEY_FORMAT_YMDHMS`
  `static final String`
  `FORMAT_TYPE_YMD`
  `static final String`
  `FORMAT_TYPE_YMDH`
  `static final String`
  `FORMAT_TYPE_YMDHM`
  `static final String`
  `FORMAT_TYPE_YMDHMS`
  `static final String`
  `PATTERN_DDMMYYYY`
  `static final String`
  `PATTERN_DDMMYYYYHHMMSS`
  `static final String`
  `PATTERN_YYYYMMDD`
  `static final String`
  `PATTERN_YYYYMMDDHHMMSS`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TimeUtils()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static boolean`
  `checkDateIntervalsIntersection(Calendar date1, Calendar date2, Calendar dateFrom, Calendar dateTo)`
  Проверка пересечения двух интервалов дат.
  `static final Calendar`
  `clear_HOUR_MIN_MIL_SEC(Calendar time)`
  Deprecated.
  `static final Date`
  `clear_HOUR_MIN_MIL_SEC(Date time)`
  Deprecated.
  `static final Date`
  `convertCalendarToDate(Calendar calendar)`
  Преобразование объекта Calendar в java.util.Date.
  `static final Timestamp`
  `convertCalendarToTimestamp(Calendar calendar)`
  Преобразование объекта java.util.Calendar в java.sql.Timestamp
  `static final Calendar`
  `convertDateToCalendar(Date date)`
  Преобразование java.util.Date в java.util.Calendar.
  `static final Date`
  `convertDateToSqlDate(Date date)`
  Преобразование объекта java.util.Date в java.sql.Date.
  `static final Timestamp`
  `convertLongToTimestamp(long millis)`
  Преобразование long в java.sql.Timestamp.
  `static final Date`
  `convertSqlDateToDate(Date date)`
  Преобразование объекта java.sql.Date в java.util.Date.
  `static final Calendar`
  `convertTimestampToCalendar(Timestamp time)`
  Преобразование java.sql.Timestamp в java.util.Calendar.
  `static boolean`
  `dateBefore(Date date1, Date date2)`
  Проверка date1 invalid input: '<' date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).
  `static boolean`
  `dateBeforeOrEq(Calendar date1, Calendar date2)`
  Проверка date1 invalid input: '<'= date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).
  `static boolean`
  `dateBeforeOrEq(Date date1, Date date2)`
  Проверка date1 invalid input: '<'= date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).
  `static boolean`
  `dateEqual(Date date1, Date date2)`
  Проверка date1 == date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).
  `static final boolean`
  `dateInRange(Calendar checking, Calendar date1, Calendar date2)`
  Проверка входит ли проверяемая дата в заданный период.
  `static final boolean`
  `dateInRange(Date checking, Date date1, Date date2)`
  Проверка входит ли проверяемая дата в заданный период.
  `static final int`
  `daysDelta(Date dayFrom, Date dayTo)`
  24h days difference between to dates.
  `static final String`
  `format(Duration duration)`
  Formats a duration object to a human-readable string like `5h 15m`
  `static final String`
  `format(Date date, String patternType)`
  Формирует строку с датой по заданному шаблону.
  `static final String`
  `formatPeriod(Date date1, Date date2)`
  Формирует строку период.
  `static final String`
  `formatPeriod(Date dateFrom, Date dateTo, String patternType)`
  `static final String`
  `formatSqlDate(Date date)`
  Форматирует дату в вид 'yyyy-MM-dd' для подстановки в SQL запрос, сразу окружённую кавычками.
  `static final int`
  `getDayOfWeekPosition(Date date)`
  Day of week starting from Monday = 1
  `static final Date`
  `getEndMonth(Date date)`
  Last day of a month
  `static final Calendar`
  `getNextDay(Calendar date)`
  Следующий от даты день.
  `static final Date`
  `getNextDay(Date date)`
  Следующий от даты день.
  `static final Calendar`
  `getPrevDay(Calendar date)`
  Предыдущий от даты день.
  `static final Date`
  `getPrevDay(Date date)`
  Предыдущий от даты день.
  `static final Date`
  `getPrevMonth()`
  `static String`
  `getShortDateName(Date date)`
  Deprecated.
  `static String`
  `getTypeFormat(String type)`
  Date and time format string compatible with `SimpleDateFormat`.
  `static final void`
  `moveToEndOfMonth(Calendar date)`
  Устанавливает дату на последний день месяца.
  `static final void`
  `moveToStartNextDay(Calendar date)`
  Увеличивает date на 1 день и сбрасывает время в 00:00:00.0.
  `static final Date`
  `parse(String date, String patternType)`
  `static final Date`
  `parse(String date, String patternType, Date defaultValue)`
  `static final void`
  `parsePeriod(String period, String patternType, PeriodSet periodSet)`
  `static final void`
  `parsePeriod(String period, PeriodSet periodSet)`
  `static final boolean`
  `periodInRange(Calendar checkingDate1, Calendar checkingDate2, Calendar date1, Calendar date2)`
  Проверка входит ли проверяемый период в заданный.
  `static Date`
  `timezoneChange(Date time, TimeZone fromTz, TimeZone toTz)`
  Корректирует объект Date, так, чтобы получилось такое же локальное время но в другой таймзоне.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### CONF_KEY_FORMAT_YMD

    public static final String CONF_KEY_FORMAT_YMD
    See Also:
      - Constant Field Values

  - ### CONF_KEY_FORMAT_YMDH

    public static final String CONF_KEY_FORMAT_YMDH
    See Also:
      - Constant Field Values

  - ### CONF_KEY_FORMAT_YMDHM

    public static final String CONF_KEY_FORMAT_YMDHM
    See Also:
      - Constant Field Values

  - ### CONF_KEY_FORMAT_YMDHMS

    public static final String CONF_KEY_FORMAT_YMDHMS
    See Also:
      - Constant Field Values

  - ### PATTERN_DDMMYYYY

    public static final String PATTERN_DDMMYYYY
    See Also:
      - Constant Field Values

  - ### PATTERN_YYYYMMDD

    public static final String PATTERN_YYYYMMDD
    See Also:
      - Constant Field Values

  - ### PATTERN_YYYYMMDDHHMMSS

    public static final String PATTERN_YYYYMMDDHHMMSS
    See Also:
      - Constant Field Values

  - ### PATTERN_DDMMYYYYHHMMSS

    public static final String PATTERN_DDMMYYYYHHMMSS
    See Also:
      - Constant Field Values

  - ### FORMAT_TYPE_YMD

    public static final String FORMAT_TYPE_YMD
    See Also:
      - Constant Field Values

  - ### FORMAT_TYPE_YMDH

    public static final String FORMAT_TYPE_YMDH
    See Also:
      - Constant Field Values

  - ### FORMAT_TYPE_YMDHM

    public static final String FORMAT_TYPE_YMDHM
    See Also:
      - Constant Field Values

  - ### FORMAT_TYPE_YMDHMS

    public static final String FORMAT_TYPE_YMDHMS
    See Also:
      - Constant Field Values

- ## 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.

  - ### 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.

  - ### formatSqlDate

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

  - ### format

    public static final String format(Duration duration)
    Formats a duration object to a human-readable string like `5h 15m`
    Parameters:
      `duration` -
    Returns:

  - ### formatPeriod

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

  - ### 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-", "-".

  - ### 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)

  - ### 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.

  - ### 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.

  - ### convertLongToTimestamp

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

  - ### 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:

  - ### getDayOfWeekPosition

    public static final int getDayOfWeekPosition(Date date)
    Day of week starting from Monday = 1
    Parameters:
      `date` -
    Returns:

  - ### 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(Date date1, Date date2)
    Проверка date1 == date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).
    Parameters:
      `date1` - первая дата.
      `date2` - вторая дата.
    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_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.

  - ### getShortDateName

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

  - ### timezoneChange

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