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的使用的更多相关文章

  1. Java LocalDateTime,DateTimeFomatter----JDK8新时间类的简单使用

    JDK8中增加了一系列时间的类, (据说)是为了干掉过去的Date,Calendar类的, 过去的Date类(据说)有着线程不安全等诸多弊端, 至于我的个人感受就是用起来实在是很麻烦,我一般封装成几个 ...

  2. 201521123005《java程序设计》第三周学习总结

    1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.使用思维导图将这些碎片化的概念.知识组织起来.使用工具画出本周学习到的知识点. 参考资料: 百度脑图 XMind 2. 书面作业 ·Q ...

  3. HowToDoInJava Java 教程·翻译完成

    原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 核心 Java 教程 什 ...

  4. SpringBoot笔记--Jackson

    SpringUtil.getBean<GenericConversionService>().addConverter(Date2LocalDateTimeConverter()) var ...

  5. 跟上Java8 - 日期和时间实用技巧,转自知乎王爵nice

    作者:王爵nice链接:https://zhuanlan.zhihu.com/p/28133858来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 当你开始使用Java操 ...

  6. 从零搭建Spring Boot脚手架(2):增加通用的功能

    1. 前言 今天开始搭建我们的kono Spring Boot脚手架,首先会集成Spring MVC并进行定制化以满足日常开发的需要,我们先做一些刚性的需求定制,后续再补充细节.如果你看了本文有什么问 ...

  7. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  8. 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 ...

  9. BeanInstantiationException: Failed to instantiate [java.time.LocalDateTime]

    错误提示: Request processing failed; nested exception is org.springframework.beans.BeanInstantiationExce ...

  10. Java 线程安全LocalTime 和LocaldateTime 新的Date和Time类 -JDK8新时间类的简单使用

    不可变类且线程安全 LocalDate .java.time.LocalTime 和LocaldateTime  新的Date和Time类 DateTimeFormatter ==https://ww ...

随机推荐

  1. 归纳了一下AD的快捷键

    1:shift+s 键 切换单层显示 2:q     英寸和毫米 尺寸切换3:D+R进入布线规则设置.其中 Clearance 是设置最小安全线间距,覆铜时候间距的.比较常用4:CTRL+鼠标单击某个 ...

  2. IDEA Maven 项目报错 java: 程序包org.springframework.beans.factory.annotation不存在

    idea 刚把项目导进去的时候,点击运行,import的好多包都报红,所有的文件的Maven依赖包都没导入进去. 但只是第一个报错是: java: 程序包org.springframework.bea ...

  3. 京东薅羊毛脚本-Docker

    一.安装好docker,然后创建容器: 注1:如果是旁路由,建议用--network host \代替-p 5678:5678 \这一行. 注2:如果想要看到lxk0301大佬的js脚本,并且重新部署 ...

  4. 排序方法-c语言

    在接触过得排序算法中中,较为常见的有冒泡排序.选择排序.归并排序.快速排序法,他们的区别在于稳定性.时间复杂度.空间复杂度等: 现简单复习一下冒泡排序: 思路非常简单,逐个比较相邻的两个元素,前一个元 ...

  5. c#和JS数据加密(转)

    前台提交按纽 后以赋值后台取值    Base64编解码   C# /* 编码规则 Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码. 它将需要编码的数据拆分成字节数组. ...

  6. ArcEngine创建注记类及生成注记要素

    在宗地出图的时候遇到此功能要求,看代码 ※创建注记类 public void createBlackAnno(IMap pMap) { //创建mdb数据库文件 IWorkspaceFactory p ...

  7. 禅道 docker 部署

    官方文档:https://hub.docker.com/r/idoop/zentao 1.创建本地目录:mkdir -p /data/zbox 2.启动容器: sudo docker run -itd ...

  8. SQLServer自带备份优劣分析

    众所周知, SQL Server自身的"维护计划"可以实现自动备份数据库. 既然这样,那还有必要使用第三方专业备份软件吗? 本文以[护卫神·好备份专业版]为例,分析两者之间的优劣. ...

  9. 【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现

    [桥接设计模式详解]Java/JS/Go/Python/TS不同语言实现 简介 桥接模式(Bridge Pattern)是一种结构型设计模式,它将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的 ...

  10. 脏牛-Linux内核提权

    漏洞范围 下载地址:https://github.com/FireFart/dirtycow 有一点可以在意,dirty.c内置在了kali中,使用命令searchsploit dirty可以搜索 也 ...