java日期转化,以及线程安全
线程安全的日期转换
package com.it.guli.mallorder.demos.web;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;
/**
* @Description :
* @Date : 2025/4/24
* @Author :
*/
public class Util {
private static final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
private static final DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
/**
* date转String
*/
public static String dateToString(Date date) {
// 先转localDate线程安全,再转string
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
String format = localDate.format(dateFormatter);
return format;
}
/**
* string转 date
*/
public static Date stringToDate(String date) {
LocalDate localDate = LocalDate.parse(date, dateFormatter);
return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
}
/**
* time转String
*/
public static String timeToString(Date date) {
LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
String format = localDateTime.format(timeFormatter);
return format;
}
/**
* string转time
*/
public static Date stringToTime(String date) {
LocalDateTime localDate = LocalDateTime.parse(date, timeFormatter);
return Date.from(localDate.atZone(ZoneId.systemDefault()).toInstant());
}
}
测试
public static void main(String[] args) {
Date date = Util.stringToDate("2024-09-12");
Date date2 = Util.stringToTime("2024-09-12 10:09:13");
System.out.println(date);
System.out.println(date2);
}
输出:
Thu Sep 12 00:00:00 CST 2024
Thu Sep 12 10:09:13 CST 2024

浙公网安备 33010602011771号