jdk8的datetime时间函数使用示例
发布时间:2021-07-03 16:42:37
JDK8已发布,写了一个datetime时间函数使用方法的小示例
package datetime;
import static java.time.temporal.TemporalAdjusters.lastDayOfMonth;
import static java.time.temporal.TemporalAdjusters.previousOrSame;
import java.time.DayOfWeek;
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Month;
import java.time.OffsetTime;
import java.time.Period;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
public class DataTimes {
public static void main(String[] args) {
// 创建时间对象
LocalDateTime timePoint = LocalDateTime.now(); // 当前时间
System.out.println("--当前时间----");
System.out.println(timePoint);
System.out.println("");
System.out.println("--自定义时间----");
System.out.println(LocalDate.of(2012, Month.DECEMBER, 12)); // from
// values
System.out.println(LocalDate.ofEpochDay(150)); // middle of 1970
System.out.println(LocalTime.of(17, 18)); // the train I took home today
System.out.println(LocalTime.parse("10:15:30")); // From a String
System.out.println("");
System.out.println("--获取时间的各个部分----");
System.out.println(timePoint.toLocalDate());
System.out.println(timePoint.getMonth());
System.out.println(timePoint.getDayOfMonth());
System.out.println(timePoint.getSecond());
System.out.println("");
System.out.println("---设置并返回新的时间对象---");
LocalDateTime thePast = timePoint.withDayOfMonth(10).withYear(2010);
System.out.println(thePast);
System.out.println("---再加3周---");
LocalDateTime yetAnother = thePast.plusWeeks(3).plus(3,
ChronoUnit.WEEKS);
System.out.println(yetAnother);
System.out.println("");
System.out.println("---使用时间调整函数---");
System.out.println(timePoint);
System.out.println(timePoint.with(lastDayOfMonth()));
System.out.println(timePoint.with(previousOrSame(DayOfWeek.WEDNESDAY)));
System.out.println(timePoint.with(LocalTime.now()));
System.out.println("");
System.out.println("---截断时间精确位--");
System.out.println(timePoint);
LocalDateTime truncatedTimeToMinutes = timePoint
.truncatedTo(ChronoUnit.MINUTES);
System.out.println(truncatedTimeToMinutes);
LocalDateTime truncatedTimeToSeconds = timePoint
.truncatedTo(ChronoUnit.SECONDS);
System.out.println(truncatedTimeToSeconds);
System.out.println("");
System.out.println("---使用时区---");
ZonedDateTime zoned_now = ZonedDateTime.of(LocalDateTime.now(),
ZoneId.of("UTC+08:00"));
System.out
.println(zoned_now.withZoneSameInstant(ZoneId.of("UTC+00:00")));
System.out.println(zoned_now.getOffset());
System.out.println("");
System.out.println("---时间上使用时区偏移---");
OffsetTime time = OffsetTime.now();
ZoneOffset offset = ZoneOffset.of("+02:00");
System.out.println(time);
System.out.println(time.withOffsetSameInstant(offset));
System.out.println("");
System.out.println("---时间加减---");
timePoint = LocalDateTime.now();
System.out.println(timePoint);
// 3 years, 2 months, 1 day
Period period1 = Period.of(3, 2, 1);
System.out.println(timePoint.plus(period1));
Duration duration = Duration.ofSeconds(3, 5);
System.out.println(timePoint.plus(duration));
Duration sixHours = Duration.between(
ZonedDateTime.of(LocalDateTime.now(), ZoneId.of("UTC+08:00")),
ZonedDateTime.of(LocalDateTime.now(), ZoneId.of("UTC+02:00")));
System.out.println(timePoint.plus(sixHours));
System.out.println("");
}
}
运行结果
--当前时间----
2014-03-25T17:03:40.553
--自定义时间----
2012-12-12
1970-05-31
17:18
10:15:30
--获取时间的各个部分----
2014-03-25
MARCH
25
40
---设置并返回新的时间对象---
2010-03-10T17:03:40.553
---再加3周---
2010-04-21T17:03:40.553
---使用时间调整函数---
2014-03-25T17:03:40.553
2014-03-31T17:03:40.553
2014-03-19T17:03:40.553
2014-03-25T17:03:40.583
---截断时间精确位--
2014-03-25T17:03:40.553
2014-03-25T17:03
2014-03-25T17:03:40
---使用时区---
2014-03-25T09:03:40.583Z[UTC]
+08:00
---时间上使用时区偏移---
17:03:40.585+08:00
11:03:40.585+02:00
---时间加减---
2014-03-25T17:03:40.585
2017-05-26T17:03:40.585
2014-03-25T17:03:43.585000005
2014-03-25T23:03:40.586


猜你喜欢
- ReferenceWhy using finalizers is a bad idea当在一个类中使用了另外一个实现了IDisposable
- import java.awt.*; import java.util.*; import javax.swing.*; public cl
- 前景概要在这个之前service_edu子模块下的功能是没有任何问题,创建了service_oss子模块之前失败了很多次,影响到了之前原本正
- 今天闲来无事写了一个清内存的小东西,类似360,在桌面上悬浮,点击后清除后台无用程序,清除后台程序是通过调用ActivityManger.k
- 本文实例讲述了C#数据结构之队列(Quene)。分享给大家供大家参考,具体如下:队列(Quene)的特征就是“先进先出”,队列把所有操作限制
- 1. C#实现复数类我们在进行信号分析的时候,难免会使用到复数。但是遗憾的是,C#没有自带的复数类,以下提供了一种复数类的构建方法。复数相比
- 前言SpringCloud 是微服务中的翘楚,最佳的落地方案。Spring Cloud Config 是一个解决分布式系统的配置管理方案,它
- 前文简单介绍了Android中SurfaceView的基本使用,本文就来介绍一下SurfaceView与多线程的混搭。SurfaceView
- 本文实例讲述了Android网络数据开关用法。分享给大家供大家参考,具体如下:api中没有开放这部分接口。因此大家可以使用这个方法,true
- 业务场景通常微服务对于用户认证信息解析有两种方案在 gateway 就解析用户的 token 然后路由的时候把 userId 等相关信息添加
- 目前Android在全世界市场上大约有75%的占有率,国人Android手机的持有比例更甚,甚至达到90%以上。因此搞计算机的一听说手机应用
- 在注册表启动项里添加一项,路径:SOFTWARE\Microsoft\Windows\CurrentVersion\Run或者直接:运行-&
- 我们在代码中经常使用using保障非托管资源的释放 static void Main(string[] args){
- 前面在学习鸿洋大神的一些自定义的View文章,看到了自定义ViewGroup实现浮动标签,初步看了下他的思路以及结合自己的思路完成了自己的浮
- 引言:上一专题介绍了下编译器是如何来翻译委托的,从中间语言的角度去看委托,希望可以帮助大家进一步的理解委托,然而之前的介绍都是委托只是封装一
- 前言在 上一节 Spring解密 - 默认标签的解析 中,重点分析了 Spring 对默认标签是如何解析的,那么本章继续讲解标签解析,着重讲
- 本文实例讲述了C#图像处理之木刻效果实现方法。分享给大家供大家参考。具体如下://木刻效果public Bitmap PFilterMuKe
- 一.static关键字的用途在《Java编程思想》P86页有这样一段话:“static方法就是没有this的方法。在st
- mybatis oracle 自增序列的代码如下所示:<insert id=" insert " useGener
- 因为项目中之前的模块用的分页插件是Datatables,很方便,但是新做的模块表格中的布局有变化,Datatables插件满足不了了。为了风