java中LocalDateTime,LocalDate,ZonedDateTime,Date 和String的互相转换

最近项目使用mysql数据库进行开发,经常遇到需要日期类型和String进行转换,以下整理了一下各个日期类型和String类型转换的方法,记录一下

package com.mwclg.soa.basic;

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

public class Testa {
    public static void main(String[] args) throws ParseException {
        //常用的
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
        ZonedDateTime fromTime = ZonedDateTime.parse("2020-09-18 17:11:25", formatter);

        //ZonedDateTime 转string
        System.out.println(fromTime.format(formatter));

        //string转ZonedDateTime
        System.out.println(fromTime);

        //LocalDate转String
        LocalDate date = LocalDate.now();
        DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        String dateStr = date.format(fmt);
        System.out.println("LocalDate转String:"+dateStr);

        //localDateTime转String
        LocalDateTime dateTime = LocalDateTime.now();
        //使用pattern来转换
        //12小时制与24小时制输出由hh的大小写决定
        DateTimeFormatter fmt12 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss:SSS");
        String dateStr12 = dateTime.format(fmt12);
        System.out.println("LocalDateTime转String[pattern](12小时制):"+dateStr12);

        DateTimeFormatter fmt24 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS");
        String dateStr24 = dateTime.format(fmt24);
        System.out.println("LocalDateTime转String[pattern](24小时制):"+dateStr24);


        //string转LocalDate 和LocalDateTime
        String str = "2017-11-21 14:41:06:612";
        DateTimeFormatter fmts = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS");
        LocalDate dates = LocalDate.parse(str, fmts);
        LocalDateTime time = LocalDateTime.parse(str, fmts);
        System.out.println("date:"+dates);
        System.out.println("time:"+time);


        //String 转Date
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
        Date dated = simpleDateFormat.parse("2019-10-31 15:24:32:222");
        System.out.println("String 转Date:"+dated);

        //Date 转String
        String dateStrs = simpleDateFormat.format(dated);
        System.out.println("Date 转String:"+dateStrs);

    }
}

 


版权声明:本文为qq_35868412原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。