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. ZFBJ - 1 - 42 - NO.1

  2. MySql5.7基础配置

    MySql5.7基础配置 [client] #设置mysql客户端的字符集 default-character-set=utf8 [mysqld] #设置mysql端口为3306 port = 330 ...

  3. 01 关于HTML基础-构建Web,这些你都知道吗?(很全)

    以下均是参考MDN web docs,总结出来的比较重要的知识点,与君共勉.不妥之处,还望大家及时提出! 什么是HTML? 是一种告诉浏览器如何组织页面的标记语言.它由一系列元素组成. HTML元素 ...

  4. .DS_Store泄露利用过程

    .DS_Store文件泄漏利用工具: ds_store_exp.DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个. 如果开发/设计人员将.DS_S ...

  5. [Unity动画]07.Animation

    一.面板信息 1.Length,单位是秒 2.如下,动画是30FPS,即1秒播放30帧 3.如下,显示0:18,前面的0表示秒数,后面的18表示帧数,计算方法是0.6*30=18 4.如下,1.333 ...

  6. [ABC284F] ABCBAC(字符串哈希)

    思路 这里我们要注意以下几点: 字符串哈希自然溢出(\(\pmod 2^64\))会被卡,会\(WA~5\)个点 注意有模数的时候不要用\(unsigned\ long \ long\)类型 代码 # ...

  7. 提供离线chrome谷歌浏览器插件crx的网站有

    crx4:http://www.crx4.com/ 极简插件:https://chrome.zzzmh.cn/index 扩展迷:https://www.extfans.com/ 浏览器插件下载中心: ...

  8. 使用RPA有什么好处

    通过本章学习,您将了解到: 什么是RPA RPA能为我们做些什么 使用RPA有什么好处 RPA的体系结构是什么 应用RPA是否需要深入了解这项技术 RPA的未来趋势怎么样 什么是RPA? RPA即Ro ...

  9. GPSSworld仿真(一):程序题——单窗口排队系统

    3.3 一个仓库共存放了2000吨货物,货物以三种规模出库,少量(10吨),中等(20吨),大量(50吨),分别以10±5分,15分,30±10分的速率出库.如果没有货位达到的情况下,一个仓库能维持供 ...

  10. 三个经典的MySQL问题

    大家好,今天给大家上3个经典的MySQL问题,希望能对大家有帮助!但是因为笔者计算机水平有限,可能会存在一些错误,烦请指出.斧正!谢谢! 一.在MySQL中INNER JOIN.LEFT JOIN.R ...