日期解析、转化为时间戳等
/**
* @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));
}
}
/**
* @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));
}
}
/** * @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)); } }