public final class LocalDateTimeUtil {
public static boolean isBetween(LocalDateTime beginTime, LocalDateTime endTime) {
LocalDateTime now = LocalDateTime.now();
boolean flag = false;
if (now.isAfter(beginTime) && now.isBefore(endTime)) {
flag = true;
}
return flag;
}
//获取当前时间的LocalDateTime对象
//LocalDateTime.now();
//根据年月日构建LocalDateTime
//LocalDateTime.of();
//比较日期先后
//LocalDateTime.now().isBefore(),
//LocalDateTime.now().isAfter(),
public static LocalDateTime convertDateToLDT(Date date) {
return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
}
public static Date convertLDTToDate(LocalDateTime time) {
return Date.from(time.atZone(ZoneId.systemDefault()).toInstant());
}
public static Long getMilliByTime(LocalDateTime time) {
return time.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
}
public static Long getSecondsByTime(LocalDateTime time) {
return time.atZone(ZoneId.systemDefault()).toInstant().getEpochSecond();
}
public static String formatTime(LocalDateTime time, String pattern) {
return time.format(DateTimeFormatter.ofPattern(pattern));
}
public static String formatDate(LocalDate date, String pattern) {
return date.format(DateTimeFormatter.ofPattern(pattern));
}
public static String formatNow() {
return formatTime(LocalDateTime.now(), DatePattern.NORM_DATETIME_PATTERN);
}
public static String formatNow(String pattern) {
return formatTime(LocalDateTime.now(), pattern);
}
public static LocalDateTime plus(LocalDateTime time, long number, TemporalUnit field) {
return time.plus(number, field);
}
public static LocalDateTime minu(LocalDateTime time, long number, TemporalUnit field) {
return time.minus(number, field);
}
public static long betweenTwoTime(LocalDateTime startTime, LocalDateTime endTime, ChronoUnit field) {
Period period = Period.between(LocalDate.from(startTime), LocalDate.from(endTime));
if (field == ChronoUnit.YEARS) {
return period.getYears();
}
if (field == ChronoUnit.MONTHS) {
return period.getYears() * 12 + period.getMonths();
}
return field.between(startTime, endTime);
}
public static LocalDateTime getDayStart(LocalDateTime time) {
return time.withHour(0)
.withMinute(0)
.withSecond(0)
.withNano(0);
}
public static LocalDateTime getDayEnd(LocalDateTime time) {
return time.withHour(23)
.withMinute(59)
.withSecond(59)
.withNano(999999999);
}
public static List formatDateList(List localDateList, String pattern) {
return localDateList.parallelStream()
.map(localDate -> formatDate(localDate, pattern))
.collect(Collectors.toList());
}
public static List getDayList(LocalDate date, int range) {
List localDateList = Lists.newArrayList();
for (int i = 0; i < range; i++) {
LocalDate temp = date.minusDays(i);
localDateList.add(temp);
}
Collections.reverse(localDateList);
return localDateList;
}
public static LocalDateTime getDateTimeFromTimestamp(long timestamp) {
Instant instant = Instant.ofEpochMilli(timestamp);
ZoneId zone = ZoneId.systemDefault();
return LocalDateTime.ofInstant(instant, zone);
}
public static LocalDate getDateFromTimestamp(long timestamp) {
LocalDateTime date = getDateTimeFromTimestamp(timestamp);
return date.toLocalDate();
}
public static LocalDateTime StringToLocalDateTime(String str) {
LocalDateTime localDateTime =
LocalDateTime.parse(str, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
return localDateTime;
}
public static LocalTime StringToLocalTime(String str) {
LocalTime localTime =
LocalTime.parse(str, DateTimeFormatter.ofPattern("HH:mm:ss"));
return localTime;
}
public static LocalDate StringToLocalDate(String str) {
LocalDate localDate =
LocalDate.parse(str, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
return localDate;
}
//比较两个日期相差几天
public static int daydiff(Date fDate, Date oDate) {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(fDate);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(oDate);
int day1 = cal1.get(Calendar.DAY_OF_YEAR);
int day2 = cal2.get(Calendar.DAY_OF_YEAR);
int year1 = cal1.get(Calendar.YEAR);
int year2 = cal2.get(Calendar.YEAR);
if (year1 != year2) //不同一年
{
int timeDistance = 0;
for (int i = year1; i < year2; i++) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) //闰年
{
timeDistance += 366;
} else //不是闰年
{
timeDistance += 365;
}
}
return timeDistance + (day2 - day1);
} else //同一年
{
return day2 - day1;
}
}
public static String localDateToStamp(String s) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String res = "";
if (!"".equals(s)) {
try {
res = String.valueOf(sdf.parse(s).getTime() / 1000);
} catch (Exception e) {
System.out.println("传入了null值");
}
} else {
long time = System.currentTimeMillis();
res = String.valueOf(time / 1000);
}
return res;
}
public static String localDatetimeToStamp(String s) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String res = "";
if (!"".equals(s)) {
try {
res = String.valueOf(sdf.parse(s).getTime() / 1000);
} catch (Exception e) {
System.out.println("传入了null值");
}
} else {
long time = System.currentTimeMillis();
res = String.valueOf(time / 1000);
}
return res;
}
//4.LocalDate转时间戳
//
public static String localDateToStamp(LocalDate localDate) {
long timestamp = localDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant().toEpochMilli();
return Long.toString(timestamp);
}
//5.LocalDateTime转时间戳
public static String localDateTimeToStamp(LocalDateTime localDateTime) {
long timestamp = localDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
return Long.toString(timestamp);
}
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
int daydiff = daydiff(null, new Date());
System.err.println(daydiff);
}
//将数字转为中文
public static String ToCH(int intInput) {
String si = String.valueOf(intInput);
String sd = "";
if (si.length() == 1) // 個
{
sd += GetCH(intInput);
return sd;
} else if (si.length() == 2)// 十
{
if (si.substring(0, 1).equals("1"))
sd += "十";
else
sd += (GetCH(intInput / 10) + "十");
sd += ToCH(intInput % 10);
} else if (si.length() == 3)// 百
{
sd += (GetCH(intInput / 100) + "百");
if (String.valueOf(intInput % 100).length() < 2)
sd += "零";
sd += ToCH(intInput % 100);
} else if (si.length() == 4)// 千
{
sd += (GetCH(intInput / 1000) + "千");
if (String.valueOf(intInput % 1000).length() < 3)
sd += "零";
sd += ToCH(intInput % 1000);
} else if (si.length() == 5)// 萬
{
sd += (GetCH(intInput / 10000) + "萬");
if (String.valueOf(intInput % 10000).length() < 4)
sd += "零";
sd += ToCH(intInput % 10000);
}
return sd;
}
private static String GetCH(int input) {
String sd = "";
switch (input) {
case 1:
sd = "一";
break;
case 2:
sd = "二";
break;
case 3:
sd = "三";
break;
case 4:
sd = "四";
break;
case 5:
sd = "五";
break;
case 6:
sd = "六";
break;
case 7:
sd = "七";
break;
case 8:
sd = "八";
break;
case 9:
sd = "九";
break;
default:
break;
}
return sd;
}
public static String getNumDayAgo(Integer num) {
try {
Calendar now = Calendar.getInstance();
now.add(Calendar.DAY_OF_MONTH, -num);
String endDate = new SimpleDateFormat("yyyy-MM-dd").format(now.getTime());
return endDate;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static Date getWeekStartDay() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, 1);
calendar.add(Calendar.DATE, -7);
return DateUtil.beginOfDay(calendar.getTime());
}
public static Date getWeekEndDay() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(getWeekStartDay());
calendar.add(Calendar.DATE, 6);
return DateUtil.endOfDay(calendar.getTime());
}
public static Date getCurrentWeekStartDay() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, 1);
return DateUtil.beginOfDay(calendar.getTime());
}
public static Date getCurrentWeekEndDay() {
Calendar cal = Calendar.getInstance();
cal.setTime(getCurrentWeekStartDay());
cal.add(Calendar.DATE, 6);
return DateUtil.endOfDay(cal.getTime());
}
public static Date getNeverSevenStartTime() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.DATE, -7);
return DateUtil.beginOfDay(calendar.getTime());
}
public static Date getNeverSevenEndTime() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(getNeverSevenStartTime());
calendar.add(Calendar.DATE, 6);
return DateUtil.endOfDay(calendar.getTime());
}
public static Date getYesterdayStartTime() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.DATE, -1);
return DateUtil.beginOfDay(calendar.getTime());
}
public static Date getYesterdayEndTime() {
return DateUtil.endOfDay(getYesterdayStartTime());
}
public static Date getTodayStartTime() {
return DateUtil.beginOfDay(new Date());
}
public static Date getTodayEndTime() {
return DateUtil.endOfDay(new Date());
}
}