String转TimeStamp
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Timestamp startTime = new Timestamp(format.parse(startDate).getTime());
TimeStamp转String
String nowDate = new SimpleDateFormat("yyyyMMdd").format(nowTimeStamp);
java.util.Date转java.sql.Date:
java.sql.Date是java.util.Date的子类,可通过获取java.util.Date的时间戳,再用该时间戳创建java.sql.Date对象
java.sql.Date转java.util.Date:
由于java.sql.Date是java.util.Date的子类,可直接将java.sql.Date赋值给java.util.Date
import java.util.Date;
import java.sql.Date;public class DateConversion {public static void main(String[] args) {// 创建一个java.util.Date对象java.util.Date utilDate = new java.util.Date();// 将java.util.Date转换为java.sql.Datejava.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());}
}import java.util.Date;
import java.sql.Date;public class DateConversion {public static void main(String[] args) {// 创建一个java.sql.Date对象java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());// 将java.sql.Date转换为java.util.Datejava.util.Date utilDate = sqlDate;}
}
java.util.Date转LocalDateTime:
需先将java.util.Date转换为Instant,再将Instant转换为LocalDateTime
LocalDateTime转java.util.Date:
先将LocalDateTime转换为ZonedDateTime,再转换为Instant,最后通过Date的构造函数创建java.util.Date对象
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;public class DateConversion {public static void main(String[] args) {// 创建一个java.util.Date对象Date utilDate = new Date();// 将java.util.Date转换为InstantInstant instant = utilDate.toInstant();// 将Instant转换为LocalDateTimeLocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());}
}import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;public class DateConversion {public static void main(String[] args) {// 创建一个LocalDateTime对象LocalDateTime localDateTime = LocalDateTime.now();// 将LocalDateTime转换为ZonedDateTimeZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());// 将ZonedDateTime转换为InstantInstant instant = zonedDateTime.toInstant();// 将Instant转换为java.util.DateDate utilDate = Date.from(instant);}
}
DateTimeFormatter:
是 Java 8 及以后版本中引入的日期时间格式化类,位于java.time.format包下,是 Java 新日期时间 API 的一部分,用于对LocalDate、LocalTime、LocalDateTime等新日期时间类型进行格式化和解析
DateTimeFormatter是线程安全的,它的设计就是可以在多线程环境中安全的共享和使用
LocalDateTime转String:
使用DateTimeFormatter定义日期时间格式,再调用format方法将LocalDateTime转换为指定格式的字符串。
String转LocalDateTime:
同样使用DateTimeFormatter定义日期时间格式,再调用parse方法将字符串转换为LocalDateTime
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;public class DateConversion {public static void main(String[] args) {// 创建一个LocalDateTime对象LocalDateTime localDateTime = LocalDateTime.now();// 定义日期时间格式DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");// 将LocalDateTime转换为StringString dateString = localDateTime.format(formatter);}
}import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;public class DateConversion {public static void main(String[] args) {// 定义日期时间格式DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");// 定义一个字符串String dateString = "2025-01-6 12:30:00";// 将String转换为LocalDateTimeLocalDateTime localDateTime = LocalDateTime.parse(dateString, formatter);}
}