java8时间自动补零
从Java 8开始,java.time包提供了新的日期和时间API,以及一套新的用于取代SimpleDateFormat的格式化类型DateTimeFormatter。
DateTimeFormatter和LocalDateTime
DateTimeFormatter和LocalDateTime都是被final修饰的,可保障线程安全。格式化要用的方法还是静态的,用起来比SimpleDateFormat舒服多了。
public final class DateTimeFormatter {
public static DateTimeFormatter ofPattern(String pattern) {
return new DateTimeFormatterBuilder().appendPattern(pattern).toFormatter();
}
}
public final class LocalDateTime
implements Temporal, TemporalAdjuster, ChronoLocalDateTime<LocalDate>, Serializable {
public static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter) {
Objects.requireNonNull(formatter, "formatter");
return formatter.parse(text, LocalDateTime::from);
}
}
自动补零的自定义方法
public static String getTransTime(String timeStr) {
//自定义入参的格式化方式
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-M-d H:m:ss");
//将字符串格式化为LocalDateTime
LocalDateTime date = LocalDateTime.parse(timeStr, df);
//自定义目标日期的格式化方式
DateTimeFormatter f2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//将格式化后的LocalDateTime转成字符串
String transTime = f2.format(date);
return transTime;
}
public static void main(String[] args) {
String s = "2020-1-3 10:5:30";
String transTime = getTransTime(s);
System.out.println(transTime);
}
输出:2020-01-03 10:05:30
自己想要格式化什么类型的日期,根据传入的字符串日期格式自行修改ofPattern即可 DateTimeFormatter.ofPattern(“yyyy-M-d HⓂ️ss”);