Java8——jdk——java.time包
package com.it.fork; import java.time.DayOfWeek;
import java.time.Duration;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.Period;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.Set; import org.junit.Test; public class TestLocalDateTime { //6.ZonedDate、ZonedTime、ZonedDateTime : 带时区的时间或日期
@Test
public void test7(){
LocalDateTime ldt = LocalDateTime.now(ZoneId.of("Asia/Shanghai"));
System.out.println(ldt); // 2019-12-23T08:59:25.007 ZonedDateTime zdt = ZonedDateTime.now(ZoneId.of("US/Pacific"));
System.out.println(zdt); // 2019-12-22T16:59:25.009-08:00[US/Pacific]
} @Test
public void test6(){
Set<String> set = ZoneId.getAvailableZoneIds();
set.forEach(System.out::println);
} //5. DateTimeFormatter : 解析和格式化日期或时间
@Test
public void test5(){
// DateTimeFormatter dtf = DateTimeFormatter.ISO_LOCAL_DATE; DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss E"); LocalDateTime ldt = LocalDateTime.now();
String strDate = ldt.format(dtf); System.out.println(strDate); // 2019年12月23日 09:00:34 星期一 LocalDateTime newLdt = ldt.parse(strDate, dtf);
System.out.println(newLdt); // 2019-12-23T09:00:34
} //4. TemporalAdjuster : 时间校正器
@Test
public void test4(){
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt); // 2019-12-23T09:02:44.373 LocalDateTime ldt2 = ldt.withDayOfMonth(10);
System.out.println(ldt2); // 2019-12-10T09:02:44.373 LocalDateTime ldt3 = ldt.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
System.out.println(ldt3); // 2019-12-29T09:02:44.373 //自定义:下一个工作日
LocalDateTime ldt5 = ldt.with((l) -> {
LocalDateTime ldt4 = (LocalDateTime) l; DayOfWeek dow = ldt4.getDayOfWeek(); if(dow.equals(DayOfWeek.FRIDAY)){
return ldt4.plusDays(3);
}else if(dow.equals(DayOfWeek.SATURDAY)){
return ldt4.plusDays(2);
}else{
return ldt4.plusDays(1);
}
}); System.out.println(ldt5); // 2019-12-24T09:02:44.373 } //3.
//Duration : 用于计算两个“时间”间隔
//Period : 用于计算两个“日期”间隔
@Test
public void test3(){
Instant ins1 = Instant.now(); System.out.println("--------------------");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
} Instant ins2 = Instant.now(); System.out.println("所耗费时间为:" + Duration.between(ins1, ins2)); // 所耗费时间为:PT1.016S System.out.println("----------------------------------"); LocalDate ld1 = LocalDate.now();
LocalDate ld2 = LocalDate.of(2011, 1, 1); Period pe = Period.between(ld2, ld1);
System.out.println(pe.getYears()); //
System.out.println(pe.getMonths()); //
System.out.println(pe.getDays()); //
} //2. Instant : 时间戳。 (使用 Unix 元年 1970年1月1日 00:00:00 所经历的毫秒值)
@Test
public void test2(){
Instant ins = Instant.now(); //默认使用 UTC 时区
System.out.println(ins); // 2019-12-23T01:05:16.251Z OffsetDateTime odt = ins.atOffset(ZoneOffset.ofHours(8));
System.out.println(odt); // 2019-12-23T09:05:16.251+08:00 System.out.println(ins.getNano()); // Instant ins2 = Instant.ofEpochSecond(5);
System.out.println(ins2); // 1970-01-01T00:00:05Z
} //1. LocalDate、LocalTime、LocalDateTime
@Test
public void test1(){
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt); // 2019-12-23T09:06:27.334 LocalDateTime ld2 = LocalDateTime.of(2016, 11, 21, 10, 10, 10);
System.out.println(ld2); // 2016-11-21T10:10:10 LocalDateTime ldt3 = ld2.plusYears(20);
System.out.println(ldt3); // 2036-11-21T10:10:10 LocalDateTime ldt4 = ld2.minusMonths(2);
System.out.println(ldt4); // 2016-09-21T10:10:10 System.out.println(ldt.getYear()); //
System.out.println(ldt.getMonthValue()); //
System.out.println(ldt.getDayOfMonth()); //
System.out.println(ldt.getHour()); //
System.out.println(ldt.getMinute()); //
System.out.println(ldt.getSecond()); //
} }
Java8——jdk——java.time包的更多相关文章
- Java日期时间API系列21-----Jdk8中java.time包中的新的日期时间API类,xk-time时间转换,计算,格式化,解析的工具
通过工作之余,对Java8中java.time包源码的不断学习,使用和总结,开发了xk-time,初步完成,欢迎试用和提出建议! xk-time xk-time is a datetime conve ...
- JAVA8的java.util.function包 @FunctionalInterface
1 函数式接口java.util.function https://www.cnblogs.com/CobwebSong/p/9593313.html 2 JAVA8的java.util.functi ...
- JDK框架简析--java.lang包中的基础类库、基础数据类型
题记 JDK.Java Development Kit. 我们必须先认识到,JDK不过,不过一套Java基础类库而已,是Sun公司开发的基础类库,仅此而已,JDK本身和我们自行书写总结的类库,从技术含 ...
- Java日期时间API系列11-----Jdk8中java.time包中的新的日期时间API类,使用java8日期时间API重写农历LunarDate
通过Java日期时间API系列7-----Jdk8中java.time包中的新的日期时间API类的优点,java8具有很多优点,现在网上查到的农历转换工具类都是基于jdk7及以前的类写的,下面使用ja ...
- 装饰者模式在JDK和Mybatis中是怎么应用的? java io包
https://mp.weixin.qq.com/s/-bj71dBylRHRqiPorOpVyg 原创: 李立敏 Java识堂 3月10日 有一个卖煎饼的店铺找上了你,希望你能给她们的店铺开发一个收 ...
- 使用jdk中的java.sql包中的方法进行jdbc连接
首先说明用 java.sql包进行jdbc连接的步骤: 1.加载数据库的驱动.(一般是oracle和mysql,oracle的数据驱动名是:Oracle.jdbc.driver.OracleDrive ...
- java8 之java.time
Java 8 之 java.time 包 标签: java java8 | 发表时间:2013-10-15 08:29 | 作者:coderbee 分享到: 出处:http://coderbee.ne ...
- java jar包收集
activation~与javaMail有关的jar包,使用javaMail时应与mail.jar (mail.jar和activation.jar)一起加入到lib中去,具体负责mail的数据源和类 ...
- java util包概述
util是utiliy的缩写,意为多用途的,工具性质的包这个包中主要存放了:集合类(如ArrayList,HashMap等),随机数产生类,属性文件读取类,定时器类等类.这些类极大方便了Java编程, ...
随机推荐
- table的常用属性
Table属性: Cellspacing:单元格与单元格之间或者单元格与表格之间的 距离. Cellpadding:单元格边框与内容之间的距离 Colspan:跨列.合并列. Rowspan:跨行,行 ...
- RPC调用和HTTP调用的区别
很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单 ...
- Vue 使用comouted计算属性
computed计算属性 使用方法见代码: <!doctype html> <html lang="en"> <head> <meta c ...
- C语言第2
今个那老哥替我刷题,然后遇到一个打印中文编码得问题,我多嘴一问,为啥 用 unsiged 然后他让我换成char试试:然后出现了以下结果 #include <stdio.h> #inclu ...
- 1130不允许连接到MySql server
连接远程服务器mysql时,报错: 1130-host ... is not allowed to connect to this MySql server 这是因为默认只让localhost的主机连 ...
- 内核发送uevent的API,用户空间解析uevent(转)
#include <stdio.h>#include <string.h>#include <sys/types.h>#include <unistd.h&g ...
- Wamp 下运行 CGI 笔记
虽然假期的余额不足了,但是仔细想想放假又有多少事情可以做呢?休息的差不多了,还是上班的好,长时间的休息人就废了.同意的举手,不同意的就算了. httpd.conf 的配置 我这里使用的是 Wamp 的 ...
- vue中使用better-scroll的2种方式简述
前言 better-scroll官方demo展示:https://ustbhuangyi.github.io/better-scroll/#/examples/en better-scroll官方文档 ...
- Linbux下的Bash对拍
下面是\(Linux\)下的\(bash\)对拍程序: #!/bin/bash t=0 //数据组数 while true; do let "t=$t + 1" echox pri ...
- 【UOJ#49】【UR #3】轴仓库
[UOJ#49][UR #3]轴仓库 题面 UOJ 题解 不难发现一定是每次找到离当前位置最近的一个箱子,然后把它搬过来. 那么如果我们能够确定起始位置,我们就可以二分从两侧多少距离搬箱子,判断一下时 ...