本文是依据网络文章进行的汇总,持续更新帖
为何要学 Java 8 的日期时间方法呢?SimpleDateFormat 不是很好用吗?我相信这种声音不在少数,缘由有:java
Long millisecond = Instant.now().toEpochMilli(); // 精确到毫秒 Long second = Instant.now().getEpochSecond();// 精确到秒
DateTimeFormatter ftf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); ftf.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(time),ZoneId.systemDefault()));
DateTimeFormatter ftf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime parse = LocalDateTime.parse("2018-05-29 13:52:50", ftf); LocalDateTime.from(parse).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
//将java.util.Date 转换为java8 的java.time.LocalDateTime,默认时区为东8区 public static LocalDateTime dateConvertToLocalDateTime(Date date) { return date.toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime(); } //将java8 的 java.time.LocalDateTime 转换为 java.util.Date,默认时区为东8区 public static Date localDateTimeConvertToDate(LocalDateTime localDateTime) { return Date.from(localDateTime.toInstant(ZoneOffset.of("+8"))); }
/** * 取本月第一天 */ public static LocalDate firstDayOfThisMonth() { LocalDate today = LocalDate.now(); return today.with(TemporalAdjusters.firstDayOfMonth()); } /** * 取本月第N天 */ public static LocalDate dayOfThisMonth(int n) { LocalDate today = LocalDate.now(); return today.withDayOfMonth(n); } /** * 取本月最后一天 */ public static LocalDate lastDayOfThisMonth() { LocalDate today = LocalDate.now(); return today.with(TemporalAdjusters.lastDayOfMonth()); } /** * 取本月第一天的开始时间 */ public static LocalDateTime startOfThisMonth() { return LocalDateTime.of(firstDayOfThisMonth(), LocalTime.MIN); } /** * 取本月最后一天的结束时间 */ public static LocalDateTime endOfThisMonth() { return LocalDateTime.of(lastDayOfThisMonth(), LocalTime.MAX);
Java8 LocalDateTime获取时间戳(毫秒/秒)、LocalDateTime与String互转、Date与LocalDateTime互转网络