public static Date changeZoneId(Date date, ZoneId old, ZoneId newZId) {
ZonedDateTime zonedDateTime = date.toInstant().atZone(ZoneId.systemDefault()).withZoneSameLocal(old);
return Date.from(zonedDateTime.toInstant().atZone(newZId).toInstant());
}
public static LocalDateTime convertToLocalDateTime(Date date) {
Instant instant = date.toInstant();
return instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
}
public static Date convertToDate(LocalDateTime localDateTime) {
Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
return Date.from(instant);
}
public static String format(Date date, String dateFormat, TimeZone timeZone) {
SimpleDateFormat df = new SimpleDateFormat(dateFormat);
df.setTimeZone(timeZone);
return df.format(date);
}
public static Date parse(String date, String dateFormat, TimeZone timeZone) {
try {
SimpleDateFormat df = new SimpleDateFormat(dateFormat);
df.setTimeZone(timeZone);
return df.parse(date);
} catch (ParseException var4) {
ParseException e = var4;
throw new IllegalArgumentException(e);
}
}
public static LocalDateTime startOfDay(LocalDateTime localDateTime) {
LocalDate localDate = localDateTime.toLocalDate();
return LocalDateTime.of(localDate, LocalTime.MIDNIGHT);
}
public static LocalDateTime endOfDay(LocalDateTime localDateTime) {
LocalDate localDate = localDateTime.toLocalDate();
return LocalDateTime.of(localDate, LocalTime.MAX);
}
public static Date getUtcDate(Date localDate) {
Calendar cal = Calendar.getInstance();
cal.setTime(localDate);
cal.add(14, -TimeZone.getDefault().getRawOffset());
return cal.getTime();
}
public static Date getUtcDate(Date date, String timeZone) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int zoneOffset = cal.get(15);
int dstOffset = cal.get(16);
cal.add(14, -(zoneOffset + dstOffset));
TimeZone tZone = TimeZone.getTimeZone(timeZone);
cal.setTimeZone(tZone);
return cal.getTime();
}
public static int getYear(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.get(1);
}
public static int getMonth(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.get(2) + 1;
}
public static int getDay(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.get(5);
}
public static int getWeek(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int week = cal.get(7);
return week == 1 ? 7 : week - 1;
}
public static int getDayOfWeek() {
Calendar now = Calendar.getInstance();
boolean isFirstSunday = now.getFirstDayOfWeek() == 1;
int weekDay = now.get(7);
if (isFirstSunday) {
--weekDay;
if (weekDay == 0) {
weekDay = 7;
}
}
return weekDay;
}
public static int getDayOfWeek(Calendar now) {
boolean isFirstSunday = now.getFirstDayOfWeek() == 1;
int weekDay = now.get(7);
if (isFirstSunday) {
--weekDay;
if (weekDay == 0) {
weekDay = 7;
}
}
return weekDay;
}
public static int getHour(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.get(11);
}
public static int getMinute(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.get(12);
}
public static int getSecond(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.get(13);
}
public static int getMillis(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.get(14);
}
public static Date getMonthEnd(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(14, 0);
c.set(13, 0);
c.set(12, 0);
c.set(11, 0);
c.set(5, 1);
c.add(2, 1);
c.add(5, -1);
return c.getTime();
}
public static int getMonthDays(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
int year = c.get(1);
int month = c.get(2);
return getMonthDays(year, month);
}
public static int getMonthDays(int year, int month) {
int days = 31;
switch (month) {
case 2:
days = isLeapYear(year) ? 29 : 28;
case 3:
case 5:
case 7:
case 8:
case 10:
default:
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
}
return days;
}
public static int getMonthTotalDay(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
int year = c.get(1);
int month = c.get(2) + 1;
int days = 31;
switch (month) {
case 2:
days = isLeapYear(year) ? 29 : 28;
case 3:
case 5:
case 7:
case 8:
case 10:
default:
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
}
return days;
}