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. 7.webpack与vue-cli

    一.模块化相关规范 1.1 模块化概述 传统开发模式的主要问题 命名冲突:多个JS文件之间,如果存在重名的变量,会发生变量覆盖问题 文件依赖:JS文件无法实现相互的引用 通过模块化解决上述问题 模块化 ...

  2. Centos 8 部署harbor 访问502

    部署过程不做多说, 部署完之后访问502, 以下可能只是一种情况, 有可能是其它情况导致的503 查看日志 core.log 提示访问数据库被拒绝 贴出解决方案:https://github.com/ ...

  3. json提取器通过多条件筛选提取ID

    可能在某些列表中如名称会有重复,此时就需要使用多个搜索条件来判定唯一性 $.data.[?(@.tymc=="测试测试")].[?(@.plat_merchandise_id==& ...

  4. 不同目录下npm run 报错

    不同目录下npm 报错sh: webpack: command not found npm ERR! file sh npm ERR! code ELIFECYCLE npm ERR! errno E ...

  5. 对利用jsp模板编写登录、注册界面的方法言

    使用模板的相关操作步骤详解 1.可以在相关的网站上面找相关的css或者js文件,下载到一个特定的文件夹里面,以备使用 2.然后,将存有相关代码的文件夹直接复制粘贴到web文件下,就会直接保存,可以根据 ...

  6. DBA必备的Mysql知识点:数据类型和运算符

    摘要:本文主要为大家带来Mysql中的3种数据类型和3种运算符. 本文分享自华为云社区<Mysql中的数据类型和运算符>,作者: 1+1=王. Mysql的数据类型 Mysql支持数值型. ...

  7. docker mysql8.0 启动,挂数据卷,定时备份,恢复~

    安装mysql 从mysql社区版的官方源去拉取镜像:mysql/mysql-server - Docker Image | Docker Hub docker run --name=mysql1 - ...

  8. 基于 Agora SDK 实现 Windows 端的一对一视频通话(基于3.6.2版本)

    前提条件 Microsoft Visual Studio 2019 或以上版本 支持 Windows 7 或以上版本的 Windows 设备 有效的 Agora 账户(免费注册) 注:如果你的网络环境 ...

  9. 【ASP.NET Core】在node.js上托管Blazor WebAssembly应用

    由于 Blazor-WebAssembly 是在浏览器中运行的,通常不需要执行服务器代码,只要有个"窝"能托管并提供相关文件的下载即可.所以,当你有一个现成的 Blazor was ...

  10. 容器云平台监控告警体系(三)—— 使用Prometheus Operator部署并管理Prometheus Server

    1.概述 Prometheus Operator是一种基于Kubernetes的应用程序,用于管理Prometheus实例和相关的监控组件.它是由CoreOS开发的开源工具,旨在简化Prometheu ...