Package ru.bgcrm.util
Class TimeUtils
java.lang.Object
ru.bgcrm.util.TimeUtils
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
checkDateIntervalsIntersection
(Calendar date1, Calendar date2, Calendar dateFrom, Calendar dateTo) Проверка пересечения двух интервалов дат.static final boolean
checkMasks
(Calendar date, int hourOfDay, int dayOfWeek, int monthOfYear, int dayOfMonth) Проверка соответствует ли указанная дата, всем заданным маскам (если маска равна 0, в проверке не участвует).static final Calendar
Deprecated.static final Date
clear_HOUR_MIN_MIL_SEC
(Date time) Deprecated.static final Calendar
clear_MIN_MIL_SEC
(Calendar time) Deprecated.static final Date
convertCalendarToDate
(Calendar calendar) Преобразование объекта Calendar в java.util.Date.static final Date
convertCalendarToSqlDate
(Calendar calendar) Преобразование объекта Calendar в java.sql.Date.static final Timestamp
convertCalendarToTimestamp
(Calendar calendar) Преобразование объекта java.util.Calendar в java.sql.Timestampstatic final XMLGregorianCalendar
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
convertDateToTimestamp
(Date date) Deprecated.static final XMLGregorianCalendar
convertDateToXMLCalendar
(Date date) static final Timestamp
convertLongToTimestamp
(long millis) Преобразование long в java.sql.Timestamp.static final Timestamp
convertLongToTimestamp
(Long millis) Преобразование java.lang.Long в java.sql.Timestamp.static final Calendar
convertSqlDateToCalendar
(Date date) Превращает SQL-дату в календарь.static final Date
convertSqlDateToDate
(Date date) Преобразование объекта java.sql.Date в java.util.Date.static final Calendar
Преобразование java.sql.Timestamp в java.util.Calendar.static final Date
Deprecated.static boolean
dateBefore
(Calendar date1, Calendar date2) Проверка date1 invalid input: '<' date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!)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
Проверка date1 == date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).static boolean
Проверка date1 == date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).static boolean
dateHourEqual
(Calendar dtime1, Calendar dtime2) Проверка 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
static final int
24h days difference between to dates.static final String
Формирует строку с датой по заданному шаблону.static final String
formatDateWithPattern
(Date date, String pattern) Deprecated.static final String
formatDeltaTime
(long delta) Форматирует разницу во времениstatic final String
formatPeriod
(Calendar date1, Calendar date2) Формирует строку период дат.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 String
formatSqlDateNoQuote
(Date date) static final String
formatSqlDatetime
(Date date) Форматирует дату + время в вид 'yyyy-MM-dd' для подстановки в SQL запрос, сразу окружённую кавычками.static final String
formatSqlDatetimeNoQuote
(Date date) static Date
getDateHour
(Date date, int hour) Дата с каким-либо часом.static final Date
getDateWithOffset
(int offset) Deprecated.static final int
getDayOfMonthMask
(Calendar date) Битовая маска дня месяца.static final int
getDayOfWeekMask
(Calendar date) Возвращает битовую маску дня недели.static final int
getDayOfWeekPosition
(Calendar date) Возвращает порядок дня недели от понедельника, начиная с 1.static final int
getDayOfWeekPosition
(Date date) static final int
Deprecated.static final Date
getEndMonth
(Date date) Last day of a monthstatic final int
getHourOfDayMask
(Calendar date) Битовая маска часа суток.static final int
getMonthOfYearMask
(Calendar date) Битовая маска месяца года.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
static String
getShortDateName
(Date date) Возвращает сокращенное название дня недели (пн - понедельник, вт - вторник и т.д.)static String
getTypeFormat
(String type) Date and time format string compatible withSimpleDateFormat
.static final int
Возвращает длительность периода между hourFrom и hourTo в часах.static final int
monthsDelta
(Calendar dateFrom, Calendar dateTo) Возвращает длительность периода между dateFrom и dateTo в месяцах.static final int
monthsDelta
(Date dateFrom, Date dateTo) Возвращает длительность периода между dateFrom и dateTo в месяцах.static final void
moveToEndOfMonth
(Calendar date) Устанавливает дату на последний день месяца.static final void
moveToStartNextDay
(Calendar date) Увеличивает date на 1 день и сбрасывает время в 00:00:00.0.static final Date
static final Date
static final Date
parseDateWithPattern
(String date, String pattern) Deprecated.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, так, чтобы получилось такое же локальное время но в другой таймзоне.
-
Field Details
-
CONF_KEY_FORMAT_YMD
- See Also:
-
CONF_KEY_FORMAT_YMDH
- See Also:
-
CONF_KEY_FORMAT_YMDHM
- See Also:
-
CONF_KEY_FORMAT_YMDHMS
- See Also:
-
PATTERN_DDMMYYYY
- See Also:
-
PATTERN_YYYYMMDD
- See Also:
-
PATTERN_YYYYMMDDHHMMSS
- See Also:
-
PATTERN_DDMMYYYYHHMMSS
- See Also:
-
FORMAT_TYPE_YMD
- See Also:
-
FORMAT_TYPE_YMDH
- See Also:
-
FORMAT_TYPE_YMDHM
- See Also:
-
FORMAT_TYPE_YMDHMS
- See Also:
-
-
Constructor Details
-
TimeUtils
public TimeUtils()
-
-
Method Details
-
getTypeFormat
Date and time format string compatible withSimpleDateFormat
.- 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
Возвращает битовую маску дня недели.- Parameters:
date
- дата- Returns:
- 1(понедельник), 2(вторник), ... 64(воскресенье)
-
getDayOfWeekPosition
Возвращает порядок дня недели от понедельника, начиная с 1.- Parameters:
date
-- Returns:
-
getDayOfWeekPosition
-
getDayOfMonthMask
Битовая маска дня месяца.- Parameters:
date
- дата- Returns:
- 1(01), 2(02), 4(03), 8(04), ... 2147483648(31)
-
getHourOfDayMask
Битовая маска часа суток.- Parameters:
date
-- Returns:
- 1(00), 2(01), 4(02), ... 8388608(23)
-
getMonthOfYearMask
Битовая маска месяца года.- 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
Формирует строку с датой по заданному шаблону.- Parameters:
date
- исходная датаpatternType
- шаблон датыFORMAT_TYPE_YMD
,FORMAT_TYPE_YMDH
,FORMAT_TYPE_YMDHM
,FORMAT_TYPE_YMDHMS
.- Returns:
- строка если исходная дата != null и шаблон задан корректно иначе null.
-
parse
-
parse
-
parsePeriod
-
parsePeriod
-
formatPeriod
-
formatPeriod
Формирует строку период дат.- Parameters:
date1
- начало периода.date2
- конец периода.- Returns:
- строка "dd.MM.yyyy-dd.MM.yyyy", если один из парамеметров равен null, вместо соответствующей даты выводиться пустая строка, например "-dd.MM.yyyy", "dd.MM.yyyy-", "-"
-
formatPeriod
Формирует строку период.- Parameters:
date1
- начала периода.date2
- конец периода.- Returns:
- строка "dd.MM.yyyy-dd.MM.yyyy", если один из парамеметров равен null, вместо соответствующей даты выводиться пустая строка, например "-dd.MM.yyyy", "dd.MM.yyyy-", "-".
-
formatDeltaTime
Форматирует разницу во времени- Parameters:
delta
- разница во времени в миллисекундах- Returns:
-
formatDateWithPattern
Deprecated.Форматирует дату явно указанным шаблоном. Можно использоватьformat(Date, String)
- по виду шаблона разбирает сам, тип это или формат.- Parameters:
date
-pattern
-- Returns:
-
parseDateWithPattern
Deprecated.Парсит дату из строки с явно указанным шаблоном. Можно использоватьparse(String, String)
- по виду шаблона разбирает сам, тип это или формат.- Parameters:
date
-pattern
-- Returns:
-
formatSqlDate
Форматирует дату в вид 'yyyy-MM-dd' для подстановки в SQL запрос, сразу окружённую кавычками.- Parameters:
date
-- Returns:
-
formatSqlDateNoQuote
-
formatSqlDatetime
Форматирует дату + время в вид 'yyyy-MM-dd' для подстановки в SQL запрос, сразу окружённую кавычками.- Parameters:
date
-- Returns:
-
formatSqlDatetimeNoQuote
-
convertCalendarToDate
Преобразование объекта Calendar в java.util.Date.- Parameters:
calendar
- исходный объект Calendar.- Returns:
- объект типа java.util.Date или null если исходный объект null.
-
convertSqlDateToDate
Преобразование объекта java.sql.Date в java.util.Date.- Parameters:
date
- исходный объект.- Returns:
- объект типа java.util.Date или null если исходный объект null.
-
convertDateToCalendar
Преобразование java.util.Date в java.util.Calendar.- Parameters:
date
- исходный объект.- Returns:
- java.sql.Calendar, если date != null, иначе null.
-
convertTimestampToCalendar
Преобразование java.sql.Timestamp в java.util.Calendar.- Parameters:
time
- исходный объект.- Returns:
- java.sql.Calendar, если time != null, иначе null.
-
convertTimestampToDate
Deprecated. -
convertSqlDateToCalendar
Превращает SQL-дату в календарь.- Parameters:
date
- дата.- Returns:
-
convertCalendarToSqlDate
Преобразование объекта Calendar в java.sql.Date.- Parameters:
calendar
- исходный объект.- Returns:
- java.sql.Date, если calendar != null, иначе null.
-
convertDateToSqlDate
Преобразование объекта java.util.Date в java.sql.Date.- Parameters:
date
- исходный объект.- Returns:
- java.sql.Date, если date != null, иначе null.
-
convertCalendarToTimestamp
Преобразование объекта java.util.Calendar в java.sql.Timestamp- Parameters:
calendar
- исходный объект.- Returns:
- java.sql.Timestamp, если calendar != null, иначе null.
-
convertDateToTimestamp
Deprecated. -
convertDateToXMLCalendar
-
convertCalendarToXMLCalendar
-
convertLongToTimestamp
Преобразование long в java.sql.Timestamp.- Parameters:
calendar
- исходный объект.- Returns:
- java.sql.Timestamp.
-
convertLongToTimestamp
Преобразование java.lang.Long в java.sql.Timestamp.- Parameters:
millis
- сходный объект.- Returns:
- java.sql.Timestamp, если millis != null, иначе null.
-
getDays
Deprecated.Возвращает разницу в днях- Parameters:
date1
-date2
-- Returns:
-
daysDelta
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
-
hourDelta
Возвращает длительность периода между hourFrom и hourTo в часах.- Parameters:
hourFrom
- дата начала периода.hourTo
- дата окончания периода.- Returns:
- длительность периода в часах.
-
monthsDelta
Возвращает длительность периода между dateFrom и dateTo в месяцах.- Parameters:
dateFrom
- дата начала периода.dateTo
- дате окончания периода.- Returns:
- длительность периода в месяцах.
-
monthsDelta
Возвращает длительность периода между dateFrom и dateTo в месяцах.- Parameters:
dateFrom
- дата начала периода.dateTo
- дате окончания периода.- Returns:
- длительность периода в месяцах.
-
dateBefore
Проверка date1 invalid input: '<' date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!)- Parameters:
date1
- первая дата.date2
- вторая дата.- Returns:
- true - date1 invalid input: '<' date2, иначе false.
-
dateBefore
Проверка date1 invalid input: '<' date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).- Parameters:
date1
- первая дата.date2
- вторая дата.- Returns:
- true - date1 invalid input: '<' date2, иначе false
-
dateEqual
Проверка date1 == date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).- Parameters:
date1
- первая дата.date2
- вторая дата.- Returns:
- true - date1 == date2, иначе false.
-
dateEqual
Проверка date1 == date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).- Parameters:
date1
- первая дата.date2
- вторая дата.- Returns:
- true - date1 == date2, иначе false
-
dateHourEqual
Проверка date1 == date2 (С ТОЧНОСТЬЮ ДО ЧАСА ДНЯ!!!).- Parameters:
dtime1
- первая дата + время.dtime2
- вторая дата + время.- Returns:
- true - date1 == date2, иначе false.
-
dateBeforeOrEq
Проверка date1 invalid input: '<'= date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).- Parameters:
date1
- первая дата.date2
- вторая дата.- Returns:
- true - date1 invalid input: '<'= date2, иначе false.
-
dateBeforeOrEq
Проверка date1 invalid input: '<'= date2 (С ТОЧНОСТЬЮ ДО ДНЯ!!!).- Parameters:
date1
- первая дата.date2
- вторая дата.- Returns:
- true - date1 invalid input: '<'= date2, иначе false
-
dateInRange
Проверка входит ли проверяемая дата в заданный период.- Parameters:
checking
- проверяемая дата.date1
- начало заданого периода.date2
- конец заданого периода.- Returns:
- true - входит, false - нет.
-
dateInRange
Проверка входит ли проверяемая дата в заданный период.- 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
Устанавливает дату на последний день месяца.- Parameters:
date
- исходная дата.
-
moveToStartNextDay
Увеличивает date на 1 день и сбрасывает время в 00:00:00.0.- Parameters:
date
- исходная дата.
-
clear_MIN_MIL_SEC
Deprecated.Устанавливает минуты, секунды и миллисекунды в ноль.- Parameters:
time
- исходный объект.- Returns:
-
clear_HOUR_MIN_MIL_SEC
Deprecated.Сброс времени на начало дня.- Parameters:
time
- исходная дата.- Returns:
- сброшенная дата (часы=минуты=секунды=мсек=0).
-
clear_HOUR_MIN_MIL_SEC
Deprecated.Сброс времени на начало дня.- Parameters:
time
- исходная дата.- Returns:
- сброшенная дата (часы=минуты=секунды=мсек=0).
-
getEndMonth
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
Следующий от даты день.- Parameters:
date
- дата- Returns:
-
getPrevDay
Предыдущий от даты день.- Parameters:
date
-- Returns:
-
getNextDay
Следующий от даты день.- Parameters:
date
- дата- Returns:
-
getPrevDay
Предыдущий от даты день.- Parameters:
date
-- Returns:
-
getPrevMonth
- Returns:
- first day in the prevous month from the current time.
-
getDateWithOffset
Deprecated.Returns the date with offset in days from now.- Parameters:
offset
- positive or negative offset- Returns:
- date with the offset
-
getDateHour
Дата с каким-либо часом. -
getShortDateName
Возвращает сокращенное название дня недели (пн - понедельник, вт - вторник и т.д.)- Parameters:
date
- Дата, на основании которой определяется день недели- Returns:
- String сокращенное название дня недели
-
timezoneChange
Корректирует объект Date, так, чтобы получилось такое же локальное время но в другой таймзоне.- Parameters:
time
- исходный объект Date с каким-то временем для таймзоны fromTz.fromTz
- исходная таймзона.toTz
- целевая таймзона.- Returns:
-