LocalDateTime工具类
常用对象
ZoneId: 时区ID,用来确定Instant和LocalDateTime互相转换的规则
Instant: 用来表示时间线上的一个点(瞬时)
LocalDate: 表示没有时区的日期, LocalDate是不可变并且线程安全的
LocalTime: 表示没有时区的时间, LocalTime是不可变并且线程安全的
LocalDateTime: 表示没有时区的日期时间, LocalDateTime是不可变并且线程安全的
工具类
import java.text.DateFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;
/*
* @creator wangli66
* @create-time 20:05 2019/12/19
**/
public class DateTimeUtils {
// 时区
private static String zoneId = "Asia/Shanghai";
// 日期格式
private static String dateFormat = "yyyy-MM-dd HH:mm:ss";
/*
* @Description: 传日期字符串返回日期
* @param: [dateTime]
* @return: java.time.LocalDateTime
* @Date: 2019/12/19
*/
public static LocalDateTime stringToDate(String dateTime) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(dateFormat);
LocalDateTime localDateTime = LocalDateTime.parse(dateTime, dateTimeFormatter);
return localDateTime;
}
/*
* @Description: 传日期格式化为字符串
* @param: [localDateTime]
* @return: java.lang.String
* @Date: 2019/12/19
*/
public static String dateToString(LocalDateTime localDateTime) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(dateFormat);
String format = dateTimeFormatter.format(localDateTime);
return format;
}
/*
* @Description: date转换为localdatetime
* @param: [date]
* @return: java.time.LocalDateTime
* @Date: 2019/12/20
*/
public static LocalDateTime dateToLocalDateTime(Date date) {
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zoneId);
return localDateTime;
}
/*
* @Description: localDateTime转换为Date
* @param: [localDateTime]
* @return: java.util.Date
* @Date: 2019/12/20
*/
public static Date localDateTimeToDate(LocalDateTime localDateTime) {
Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
return Date.from(instant);
}
/*
* @Description: 毫秒数转换为localdatetime
* @param: [time]
* @return: java.time.LocalDateTime
* @Date: 2019/12/20
*/
public static LocalDateTime longToLocalDateTime(long time) {
return LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault());
}
/*
* @Description: localdatetime转换为毫秒数
* @param: [ldt]
* @return: long
* @Date: 2019/12/20
*/
public static long localDateTimeToLong(LocalDateTime ldt) {
return ldt.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
}
public static void main(String[] args) {
LocalDateTime localDateTime = DateTimeUtils.stringToDate("2019-12-19 20:23:54");
System.out.println("字符串转换时间:" + localDateTime);
String date = DateTimeUtils.dateToString(LocalDateTime.now());
System.out.println("时间转换字符串:" + date);
LocalDateTime localDateTime1 = DateTimeUtils.dateToLocalDateTime(new Date());
System.out.println("Date转换LocalDateTime:" + localDateTime1);
Date date1 = DateTimeUtils.localDateTimeToDate(LocalDateTime.now());
System.out.println("LocalDateTime转换Date:" + date1);
LocalDateTime localDateTime2 = DateTimeUtils.longToLocalDateTime(System.currentTimeMillis());
System.out.println("毫秒转换LocalDateTime:" + localDateTime2);
long mills = DateTimeUtils.localDateTimeToLong(LocalDateTime.now());
System.out.println("LocalDateTime转换毫秒:" + mills);
}
}
测试结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术