Java中日期时间格式化方法SimpleDateFormat和DateTimeFormatter使用完整示例及区别说明

示例代码:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Date;

/**
 * @author wh445306
 * @version 1.0
 * @Description DateFormat
 * @Date 2023-04-06 17:10
 */
public class DateFormat {

    public static void main(String[] args) throws ParseException {
        Date currentTime = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = formatter.format(currentTime);
        System.out.println(dateString);

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
        String dateString2 = dateFormat.format(currentTime);
        System.out.println(dateString2);

        Date date1 = dateFormat.parse(dateString2);
        String dateString3 = formatter.format(date1);
        System.out.println(dateString3);


        // 将日期字符串转换为LocalDate对象
        LocalDate date = LocalDate.parse("2023-04-06");
        // 将LocalDate对象格式化为指定格式的字符串
        DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy年M月d日");
        String formattedDate = date.format(formatter1);
        System.out.println(formattedDate);
        // 将格式化后的字符串转换为LocalDate对象
        LocalDate parsedDate = LocalDate.parse(formattedDate, formatter1);
        // 将LocalDate对象转换为指定格式的字符串
        String parsedDateString = parsedDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        System.out.println(parsedDateString);
        // 确认两个日期字符串相等
        assert parsedDateString.equals("2023-04-06");
        // 确认两个LocalDate对象相等
        assert parsedDate.equals(date);
    }
}

示例截图:

 这里完整的用两种方法分别实现了日期和String的来回转换,鉴于SimpleDateFormat早已过时,且非线程安全,所以推荐大家首选使用DateTimeFormatter,用法基本都是差不多的。变化不大。但是DateTimeFormatter需要Java Level 8(8 - Lambdas, type annotations etc.),需留意。

猜你喜欢

转载自blog.csdn.net/wh445306/article/details/129995026