java LocalDateTime的使用
1.LocalDateTime的基本使用
//获取当前时间
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime);
//时间转字符串
String format = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(format);
//字符串转时间
LocalDateTime dateTime = LocalDateTime.parse(format, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(dateTime);
//localDateTime转换为时间戳
long time = localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
System.out.println(time);
//时间戳转换为localDateTime
LocalDateTime newLocalTime = Instant.ofEpochMilli(time).atZone(ZoneId.systemDefault()).toLocalDateTime();
System.out.println(newLocalTime);
//LocalDateTime转LocalDate
LocalDate localDate = dateTime.atZone(ZoneId.systemDefault()).toLocalDate();
System.out.println(localDate);
String startTimeMin = LocalDateTime.now().with(LocalTime.MIN)
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(startTimeMin);
String endTime = LocalDateTime.now().with(LocalTime.MAX)
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(endTime); String startTime = "2022-04-14 13:30:00";
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.parse(startTime, dateTimeFormatter);
System.out.println(localDateTime);
long epochMilli = localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
System.out.println("epochMilli = " + epochMilli); LocalDateTime localDateTime1 = Instant.ofEpochMilli(epochMilli).atZone(ZoneId.systemDefault()).toLocalDateTime();
System.out.println("localDateTime1 = " + localDateTime1);
System.out.println(localDateTime1.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS")));
LocalDateTime s = LocalDateTime.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneId.systemDefault());
LocalDateTime lt = LocalDateTime.ofInstant(Instant.ofEpochMilli(utcTimestamp), ZoneOffset.ofHours(8));
Long endDate = Instant.ofEpochMilli(epochMilli)
.atZone(ZoneId.systemDefault())
.toLocalDateTime()
.with(LocalTime.MAX)
.toInstant(ZonedDateTime.now().getOffset())
.toEpochMilli();
System.out.println(LocalDateTime.ofInstant(Instant.ofEpochMilli(endDate),ZoneId.systemDefault()));
/**
* 根据时区转换为本时区时间
* @param utc utc 时间 yyyy-MM-dd HH:mm:ss
* @param timeZone 时区
* @return
*/
public static String utcToLocal(Long utc, String timeZone) {
if (StringUtils.isEmpty(timeZone)) {
timeZone = "+08:00";
}
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(utc), ZoneId.of(timeZone));
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
return localDateTime.format(formatter);
}
2.相关操作方法
//本星期过了多少天
int day= localDateTime.getDayOfWeek().getValue();
//本月过了多少天
int dayOfMonth = localDateTime.getDayOfMonth();
//本年过了多少天
int dayOfYear = localDateTime.getDayOfYear();
System.out.println("本周过了"+day+ "天,本月过了几:" + dayOfMonth + "天,本年过了几:" + dayOfYear+"天。");
now().isAfter(date) 当前时间是否在date之后(大于date)
now().isBefore(date) 当前时间是否在date之前(小于date)
now().plusDays() 当前时间加几天 (还有年、月、小时、分钟、秒、周)
now().minusDays() 当前时间减几天(还有年、月、小时、分钟、秒、周)
3.with方法相关操作
//获取今天刚开始时间
System.out.println(localDateTime.with(LocalTime.MIN));
//获取今天的最大时间
System.out.println(localDateTime.with(LocalTime.MAX));
// 获取第几周的星期几
System.out.println(localDateTime.with(TemporalAdjusters.dayOfWeekInMonth(2, DayOfWeek.of(3))));
//本月第一天
System.out.println(localDateTime.with(TemporalAdjusters.firstDayOfMonth()));
//下月第一天
System.out.println(localDateTime.with(TemporalAdjusters.firstDayOfNextMonth()));
//下年第一天
System.out.println(localDateTime.with(TemporalAdjusters.firstDayOfNextYear()));
//本年第一天
System.out.println(localDateTime.with(TemporalAdjusters.firstDayOfYear()));
//本月最后一天
System.out.println(localDateTime.with(TemporalAdjusters.lastDayOfMonth()));
//本年最后一天
System.out.println(localDateTime.with(TemporalAdjusters.lastDayOfYear()));
//下周四 如果今天是周四,则返回下个周四。如果今天是周三,则返回明天的时间
System.out.println(localDateTime.with(TemporalAdjusters.next(DayOfWeek.THURSDAY)));
// 如果今天是周四 则返回当前时间,如果今天是周三,则返回明天的时间
System.out.println(localDateTime.with(TemporalAdjusters.nextOrSame(DayOfWeek.THURSDAY)));
//本月第一个周四
System.out.println(localDateTime.with(TemporalAdjusters.firstInMonth(DayOfWeek.THURSDAY)));
//本月最后一个周四
System.out.println(localDateTime.with(TemporalAdjusters.lastInMonth(DayOfWeek.THURSDAY)));
//前一个周三
System.out.println(localDateTime.with(TemporalAdjusters.previous(DayOfWeek.WEDNESDAY)));
//前一个周三 如果今天是周三返回今天时间
System.out.println(localDateTime.with(TemporalAdjusters.previousOrSame(DayOfWeek.WEDNESDAY)));
java LocalDateTime的使用的更多相关文章
- Java LocalDateTime,DateTimeFomatter----JDK8新时间类的简单使用
JDK8中增加了一系列时间的类, (据说)是为了干掉过去的Date,Calendar类的, 过去的Date类(据说)有着线程不安全等诸多弊端, 至于我的个人感受就是用起来实在是很麻烦,我一般封装成几个 ...
- 201521123005《java程序设计》第三周学习总结
1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.使用思维导图将这些碎片化的概念.知识组织起来.使用工具画出本周学习到的知识点. 参考资料: 百度脑图 XMind 2. 书面作业 ·Q ...
- HowToDoInJava Java 教程·翻译完成
原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 核心 Java 教程 什 ...
- SpringBoot笔记--Jackson
SpringUtil.getBean<GenericConversionService>().addConverter(Date2LocalDateTimeConverter()) var ...
- 跟上Java8 - 日期和时间实用技巧,转自知乎王爵nice
作者:王爵nice链接:https://zhuanlan.zhihu.com/p/28133858来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 当你开始使用Java操 ...
- 从零搭建Spring Boot脚手架(2):增加通用的功能
1. 前言 今天开始搭建我们的kono Spring Boot脚手架,首先会集成Spring MVC并进行定制化以满足日常开发的需要,我们先做一些刚性的需求定制,后续再补充细节.如果你看了本文有什么问 ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- Java 8 Date Time API Example Tutorial – LocalDate, Instant, LocalDateTime, Parse and Format
参考 Java 8 Date and Time API is one of the most sought after change for developers. Java has been mis ...
- BeanInstantiationException: Failed to instantiate [java.time.LocalDateTime]
错误提示: Request processing failed; nested exception is org.springframework.beans.BeanInstantiationExce ...
- Java 线程安全LocalTime 和LocaldateTime 新的Date和Time类 -JDK8新时间类的简单使用
不可变类且线程安全 LocalDate .java.time.LocalTime 和LocaldateTime 新的Date和Time类 DateTimeFormatter ==https://ww ...
随机推荐
- Java线上日志分析
1.查询关键字前后30行 cat 日志文件名.log | grep -30 '关键字' 例: cat mcs-all.log | grep -30 '2019-04-08 13:30:04,271' ...
- 2020/03/24 HTML基础复习笔记
2020-03-24 15:49:30 下午好! 这是我开通博客的第二天也是在钉钉上网课的又一天,为了应对考试现在复习到了HTML基础知识,本打算用VS敲想了想还是用了XMind(真的好用!!!)文件 ...
- WPF中转换与关键帧动画及报错:WPF动画找不到依赖属性:属性未指向路径“(0).(1)[3].(2)”中的 DependencyObject
WPF中的转换有: // 在二维 x-y 坐标系内围绕指定点按顺时针方向旋转对象. <RotateTransform /> // 在二维 x-y 坐标系中平移(移动)对象. <Tra ...
- vs2022和wsl2开发和调试c++代码(转载)
看见一个不错的帖子(知乎) https://zhuanlan.zhihu.com/p/390757559 里面最主要就是要保证wsl里面安装的东西够了,第二就是vs2022已经安装了linux的相关模 ...
- Python中的startswith()函数用法
函数:startswith() 作用:判断字符串是否以指定字符或子字符串开头 一.函数说明语法:string.startswith(str, beg=0,end=len(string)) ...
- 一个小数据库SQLite
参考 https://blog.csdn.net/csdnhsh/article/details/93376733 https://www.runoob.com/sqlite/sqlite-creat ...
- luffy项目settings
一: 二:. 设置调整 1.修改manage.py配置路径 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyApi.settings.de ...
- group by和union,Laravel分页
$res3 = DB::table('users') ->join('user_folow_boutiques', 'user_folow_boutiques.user_id', '=', 'u ...
- 一篇文章带你快速入门学习RPA
大纲: 什么是RPA? RPA的应用领域有哪些? RPA机器人技术一般用于什么行业? RPA的市场需求是什么? RPA项目的实施过程? RPA的未来趋势怎么样? 什么是RPA? RPA 全称& ...
- Android笔记--监听短信内容
监听短信内容 就比如说是在我们用一个软件需要使用"获取验证码"的功能时,能够跟短信的验证码互通,实现较为完整的登录功能: 监听短信内容主要是利用了contentObserver实现 ...