String、Date、LocalDate之间的转换

引用地址:https://blog.51cto.com/u_15942107/9964602

文章目录

    一、Date和String

    1、Date 转 String
    2、String 转 Date

    二、Date和LocalDate

    1、Date 转 LocalDate
    2、LocalDate 转 Date

    三、LocalDate和String

    1、LocalDate 转 String
    2、String 转 LocalDate


    下文会使用到的日期格式

public class FormatConstant {

    public static final String YYYY_MM_DD_HH_MM_SS_24 = "yyyy-MM-dd HH:mm:ss";

    public static final String YYYY_MM_DD_HH_MM_SS_12 = "yyyy-MM-dd hh:mm:ss";

    public static final String YYYYMMDD_HHMMSS = "yyyyMMdd HHmmss";

    public static final String YYYY_MM_DD = "yyyy-MM-dd";
    
    public static final String YYYYMMDD = "yyyyMMdd";

    public static final String HH_MM_SS = "HH:mm:ss";

    public static final String YYYY_MM_DD_HH_MM_SS_SPECIAL = "yyyy_MM_dd&HH-mm-ss";
}


一、Date和String

    使用SimpleDateFormat对象指定目标日期格式

1、Date 转 String

public void date2String() {

    // 2023-05-31 23:34:05
    Date date = new Date();
    SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS_24);
    System.out.println(formatter.format(date));

    SimpleDateFormat formatter2 = new SimpleDateFormat(YYYY_MM_DD);
    System.out.println(formatter2.format(date));

    SimpleDateFormat formatter3 = new SimpleDateFormat(HH_MM_SS);
    System.out.println(formatter3.format(date));

    SimpleDateFormat formatter4 = new SimpleDateFormat(YYYYMMDD_HHMMSS);
    System.out.println(formatter4.format(date));

    SimpleDateFormat formatter5 = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS_12);
    System.out.println(formatter5.format(date));

}

   

String、Date、LocalDate之间的转换,这一篇就够了!!!_开发语言


2、String 转 Date

public void string2Date() throws ParseException {
    String date = "2023-05-31 22:41:21";
    SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS_24);
    System.out.println(formatter.parse(date));

    String date2 = "2023-05-31";
    SimpleDateFormat formatter2 = new SimpleDateFormat(YYYY_MM_DD);
    System.out.println(formatter2.parse(date2));

    String date3 = "22:41:21";
    SimpleDateFormat formatter3 = new SimpleDateFormat(HH_MM_SS);
    System.out.println(formatter3.parse(date3));

    String date4 = "20230531 224121";
    SimpleDateFormat formatter4 = new SimpleDateFormat(YYYYMMDD_HHMMSS);
    System.out.println(formatter4.parse(date4));

    String date5 = "2023-05-31 10:41:21";
    SimpleDateFormat formatter5 = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS_12);
    System.out.println(formatter5.parse(date5));

    String date6 = "2023_05_31&10-41-21";
    SimpleDateFormat formatter6 = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS_SPECIAL);
    System.out.println(formatter6.parse(date6));
}

String、Date、LocalDate之间的转换,这一篇就够了!!!_开发语言_02

二、Date和LocalDate

    转变为中间对象Instant,都需要用到ZoneId时区

1、Date 转 LocalDate

public void date2LocalDate() {
    System.out.println("====LocalDate====");

    // 2023-05-31 23:36:56.896
    Date date = new Date();

    LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
    System.out.println(localDate);

    LocalDate localDate1 = LocalDate.ofEpochDay(10);
    System.out.println(localDate1);

    LocalDate localDate2 = LocalDate.ofYearDay(2023,10);
    System.out.println(localDate2);


    System.out.println("====LocalDateTime====");
    LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
    System.out.println(localDateTime);

    LocalDateTime localDateTime2 = LocalDateTime.of(2023, 5, 31, 23, 13, 0);
    System.out.println(localDateTime2);

    LocalDateTime localDateTime3 = LocalDateTime.ofEpochSecond(date.getTime() / 1000, 0, ZoneOffset.ofHours(8));
    System.out.println(localDateTime3);

}

String、Date、LocalDate之间的转换,这一篇就够了!!!_java_03


2、LocalDate 转 Date

public void localDate2Date() {
    ZoneId zone = ZoneId.systemDefault();

    System.out.println("====LocalDate====");
    LocalDate localDate = LocalDate.of(2023, 5, 31);
    Instant instant = localDate.atStartOfDay().atZone(zone).toInstant();
    System.out.println(Date.from(instant));

    LocalDate date2 = LocalDate.parse("2023-05-13", DateTimeFormatter.ISO_LOCAL_DATE);
    Instant instant2 = date2.atStartOfDay().atZone(zone).toInstant();
    System.out.println(Date.from(instant2));

    
    System.out.println("====LocalDateTime====");
    LocalDateTime localDateTime2 = LocalDateTime.of(2023, 5, 31, 23, 13, 0);
    Instant instant3 = localDateTime2.atZone(zone).toInstant();
    System.out.println(Date.from(instant3));
}

String、Date、LocalDate之间的转换,这一篇就够了!!!_System_04

三、LocalDate和String

    使用DateTimeFormatter指定目标日期格式

1、LocalDate 转 String

public void localDate2String() {
    System.out.println("====LocalDate====");

    DateTimeFormatter df = DateTimeFormatter.ofPattern(YYYY_MM_DD);
    LocalDate localDate = LocalDate.of(2020, 2, 5);
    System.out.println(localDate.format(df));


    DateTimeFormatter df2 = DateTimeFormatter.ofPattern(YYYYMMDD);
    LocalDate localDate2 = LocalDate.of(2020, 2, 5);
    System.out.println(localDate2.format(df2));

    System.out.println("====LocalDateTime====");
    DateTimeFormatter df3 = DateTimeFormatter.ofPattern(YYYY_MM_DD_HH_MM_SS_12);
    LocalDateTime localDateTime = LocalDateTime.of(2020, 2, 5, 14, 30);
    System.out.println(df3.format(localDateTime));


    DateTimeFormatter df4 = DateTimeFormatter.ofPattern(YYYYMMDD_HHMMSS);
    LocalDateTime localDateTime2 = LocalDateTime.of(2020, 2, 5, 14, 30);
    System.out.println(df4.format(localDateTime2));

    DateTimeFormatter df5 = DateTimeFormatter.ofPattern(YYYY_MM_DD_HH_MM_SS_SPECIAL);
    LocalDateTime localDateTime3 = LocalDateTime.of(2020, 2, 5, 14, 30);
    System.out.println(df5.format(localDateTime3));
}

String、Date、LocalDate之间的转换,这一篇就够了!!!_java_05


2、String 转 LocalDate

public void string2localDate() {
    System.out.println("====LocalDate====");

    String dateStr = "2023-05-31";
    DateTimeFormatter df = DateTimeFormatter.ofPattern(YYYY_MM_DD);
    System.out.println(LocalDate.parse(dateStr, df));

    String dateStr2 = "20230531";
    DateTimeFormatter df2 = DateTimeFormatter.ofPattern(YYYYMMDD);
    System.out.println(LocalDate.parse(dateStr2, df2));


    System.out.println("====LocalDateTime====");
    String timeStr = "2023-05-31 16:41:21";
    DateTimeFormatter df3 = DateTimeFormatter.ofPattern(YYYY_MM_DD_HH_MM_SS_24);
    System.out.println(LocalDateTime.parse(timeStr, df3));


    String timeStr2 = "2023_05_31&15-21-21";
    DateTimeFormatter df4 = DateTimeFormatter.ofPattern(YYYY_MM_DD_HH_MM_SS_SPECIAL);
    System.out.println(LocalDateTime.parse(timeStr2, df4));
}

String、Date、LocalDate之间的转换,这一篇就够了!!!_System_06


-----------------------------------
©著作权归作者所有:来自51CTO博客作者wx63c373b99113d的原创作品,请联系作者获取转载授权,否则将追究法律责任
String、Date、LocalDate之间的转换,这一篇就够了!!!
https://blog.51cto.com/u_15942107/9964602

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值