java8日期格式化-时间自动补零

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”);

猜你喜欢

转载自blog.csdn.net/weixin_41197407/article/details/115616700