【java基础】简单了解LocalDateTime
程序员文章站
2024-03-18 11:25:58
...
【java基础】简单了解LocalDateTime
Java8推出的三个时间类型:LocalDateTime;LocalDate;LocalTime。
具体操作
- 获取时间
//获取当前时间
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime time = LocalDateTime.now();
String mon = df.format(time);
System.out.println(mon);
//2019-04-17 15:49:00
/*
可以跑一下这注释代码
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime time = LocalDateTime.now().plusMonths(-2).plusDays(-1);
String mon = df.format(time);
System.out.println(mon);
*/
- 字符串转换为时间(LocalDateTime)
//字符串转时间
String dateTimeStr = "9102-01-01 01:01:01";
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse(dateTimeStr, df);
System.out.println(dateTime);
控制台结果:
9102-01-01T01:01:01
- LocalDateTime获取毫秒数(东8区,北京时间)
//获取秒数
Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
//获取毫秒数
Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
- LocalDateTime与Date
//Date转换为LocalDateTime
public static LocalDateTime convertDateToLDT(Date date) {
return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
}
//LocalDateTime转换为Date
public static Date convertLDTToDate(LocalDateTime time) {
return Date.from(time.atZone(ZoneId.systemDefault()).toInstant());
}
- 公司一般都有自己独有的工具类。
另外提示(来自阿里巴巴java开发手册)
SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,如果定义为static,必须加锁,或者使用 DateUtils 工具类。
正例:注意线程安全,使用 DateUtils。亦推荐如下处理:
private static final ThreadLocal<DateFormat> df = new ThreadLocal<DateFormat>() {
@Override
protected DateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd");
}
};
说明:如果是 JDK8 的应用,可以使用 Instant 代替 Date,LocalDateTime 代替 Calendar,
DateTimeFormatter 代替 SimpleDateFormat,
官方给出的解释:simple beautiful strong immutable thread-safe。
直接将以前做的笔记复制过来了
有错误之处,望指出
我没有整合过LocalDateTime的工具类,因为我公司一直都是用Date
上一篇: Go标准容器之Ring
下一篇: 手写队列 栈
推荐阅读
-
【java基础】简单了解LocalDateTime
-
Java ExecutorService 的简单了解
-
Java io nio netty三种方式实现简单聊天功能 博客分类: java基础 ionionetty聊天
-
初步了解TCP/IP协议 博客分类: java基础 tcp/ip
-
初步了解TCP/IP协议 博客分类: java基础 tcp/ip
-
Java基础之打印万年历的简单实现(案例)
-
java实现简单的窗体和密码验证(传参,事件机制和事件监听的作用过程) 博客分类: java图形界面基础,事件机制 javaJFrame监听器事件机制
-
Java 基础 byte[]与各种数据类型互相转换的简单示例
-
Java 基础 byte[]与各种数据类型互相转换的简单示例
-
简单了解Java编程中线程的创建与守护线程