|
|
|
@ -37,10 +37,25 @@ public abstract class DateUtils
|
|
|
|
|
|
|
|
|
|
private static Locale fixedLocale = null;
|
|
|
|
|
|
|
|
|
|
private static int startDayHourOffset = 0;
|
|
|
|
|
|
|
|
|
|
private static int startDayMinuteOffset = 0;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Number of milliseconds in one minute.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
public static final long MINUTE_LENGTH = 60 * 1000;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Number of milliseconds in one hour.
|
|
|
|
|
*/
|
|
|
|
|
public static final long HOUR_LENGTH = 60 * MINUTE_LENGTH;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Number of milliseconds in one day.
|
|
|
|
|
*/
|
|
|
|
|
public static final long DAY_LENGTH = 24 * 60 * 60 * 1000;
|
|
|
|
|
public static final long DAY_LENGTH = 24 * HOUR_LENGTH;
|
|
|
|
|
|
|
|
|
|
public static long applyTimezone(long localTimestamp)
|
|
|
|
|
{
|
|
|
|
@ -165,24 +180,41 @@ public abstract class DateUtils
|
|
|
|
|
return new Timestamp(getStartOfToday());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@NonNull
|
|
|
|
|
public static Timestamp getTodayWithOffset()
|
|
|
|
|
{
|
|
|
|
|
return new Timestamp(getStartOfTodayWithOffset());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static long getStartOfDay(long timestamp)
|
|
|
|
|
{
|
|
|
|
|
return (timestamp / DAY_LENGTH) * DAY_LENGTH;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static long getStartOfDayWithOffset(long timestamp)
|
|
|
|
|
{
|
|
|
|
|
long offset = startDayHourOffset * HOUR_LENGTH + startDayMinuteOffset * MINUTE_LENGTH;
|
|
|
|
|
return getStartOfDay(timestamp - offset);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static long getStartOfToday()
|
|
|
|
|
{
|
|
|
|
|
return getStartOfDay(getLocalTime());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static long getStartOfTomorrow()
|
|
|
|
|
public static long getStartOfTomorrowWithOffset()
|
|
|
|
|
{
|
|
|
|
|
return getUpcomingTimeInMillis(startDayHourOffset, startDayMinuteOffset);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static long getStartOfTodayWithOffset()
|
|
|
|
|
{
|
|
|
|
|
return getUpcomingTimeInMillis(0, 0);
|
|
|
|
|
return getStartOfDayWithOffset(getLocalTime());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static long millisecondsUntilTomorrow()
|
|
|
|
|
public static long millisecondsUntilTomorrowWithOffset()
|
|
|
|
|
{
|
|
|
|
|
return getStartOfTomorrow() - getLocalTime();
|
|
|
|
|
return getStartOfTomorrowWithOffset() - getLocalTime();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static GregorianCalendar getStartOfTodayCalendar()
|
|
|
|
@ -190,6 +222,11 @@ public abstract class DateUtils
|
|
|
|
|
return getCalendar(getStartOfToday());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static GregorianCalendar getStartOfTodayCalendarWithOffset()
|
|
|
|
|
{
|
|
|
|
|
return getCalendar(getStartOfTodayWithOffset());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static TimeZone getTimezone()
|
|
|
|
|
{
|
|
|
|
|
if(fixedTimeZone != null) return fixedTimeZone;
|
|
|
|
@ -217,6 +254,12 @@ public abstract class DateUtils
|
|
|
|
|
fixedLocale = locale;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void setStartDayOffset(int hourOffset, int minuteOffset)
|
|
|
|
|
{
|
|
|
|
|
startDayHourOffset = hourOffset;
|
|
|
|
|
startDayMinuteOffset = minuteOffset;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static Locale getLocale()
|
|
|
|
|
{
|
|
|
|
|
if(fixedLocale != null) return fixedLocale;
|
|
|
|
|