日期解析、转化为时间戳等
/** * @author coder4 */ public class DayUtils { private static final DateTimeFormatter DTF = DateTimeFormatter.ofPattern("yyyyMMdd"); /** * Parse epoch seconds to LocalDate * * @param epochSecs * @return */ public static LocalDate parse(long epochSecs) { return Instant.ofEpochMilli(epochSecs).atZone(ZoneId.systemDefault()).toLocalDate(); } /** * Parse day to LocalDate * * @param day e.g. 20171010 * @return */ public static LocalDate parse(int day) { return LocalDate.parse(Integer.toString(day), DTF); } /** * Convert LocalDate to million-seconds * * @param date * @return e.g. 20171010 */ private static int format(LocalDate date) { return Integer.parseInt(DTF.format(date)); } /** * get epoch million-seconds from day * * @param day e.g. 20171010 * @return ms from 1970 */ public static long getMillis(int day) { return parse(day).atStartOfDay(ZoneOffset.systemDefault()).toEpochSecond() * UnitUtils.SECOND; } /** * get next day of $day * * @param day e.g. 20171010 * @return e.g. 20171011 */ public static int nextDay(int day) { return format(parse(day).plusDays(1)); } /** * get prev day of $day * * @param day e.g. 20171010 * @return e.g. 20171009 */ public static int prevDay(int day) { return format(parse(day).minusDays(1)); } }