首页 > 编程语言 >Java8新的时间工具测试

Java8新的时间工具测试

时间:2023-08-06 16:03:14浏览次数:36  
标签:TemporalAdjusters System 测试 println 工具 now LocalDate Java8 out

java8新的时间工具测试

java8引入了一套全新的时间日期API,本篇随笔将说明学习java8的这套API。

java。time包中的是类是不可变且线程安全的。新的时间及日期API位于java.time中,下面是一些关键类

  • Instant——它代表的是时间戳

  • LocalDate——不包含具体时间的日期,比如2014-01-14。它可以用来存储生日,周年纪念日,入职日期等。

  • LocalTime——它代表的是不含日期的时间

  • LocalDateTime——它包含了日期及时间,不过还是没有偏移信息或者说时区。

  • ZonedDateTime——这是一个包含时区的完整的日期时间,偏移量是以UTC/格林威治时间为基准的。

package java8chaptertwelfth;

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoField;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;

/**
 * 描述:java8时间测试
 * Created by zjw on 2017/9/5.
 */
public class Java8DateTest {

	public static void main(String[] args) throws Exception {
		System.out.println("当前日期" + LocalDateTime.now());
		System.out.println("当前时间去除T和毫秒数" + LocalDateTime.now().withNano(0).toString().replaceAll("T", " "));
		System.out.println("创建时间" + LocalDate.of(2014, 12, 25));
		System.out.println("根据自定义格式创建时间" + LocalDate.parse("14-2-20", DateTimeFormatter.ofPattern("yy-M-d")));
		System.out.println("创建固定格式时间" + LocalDate.parse("2014-02-28"));
		LocalDate today = LocalDate.now();
		System.out.println("当前日期" + today);
		System.out.println("本月的第一天" + today.with(TemporalAdjusters.firstDayOfMonth()));
		System.out.println("本月的第二天" + today.withDayOfMonth(2));
		LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth());
		System.out.println("本月的最后一天" + lastDayOfThisMonth);
		System.out.println("本年的最后一天" + today.with(TemporalAdjusters.lastDayOfYear()));
		System.out.println("本月最后一天再后一天的日期" + lastDayOfThisMonth.plusDays(1));
		// 取2015年1月最后一个周一的日期,这个计算用Calendar要死掉很多脑细胞:
		System.out.println(LocalDate.parse("2015-01-01").with(TemporalAdjusters.lastInMonth(DayOfWeek.MONDAY)));
		LocalTime t1 = LocalTime.of(9, 50, 12);
		LocalTime t2 = LocalTime.parse("23:58:59.675", DateTimeFormatter.ISO_LOCAL_TIME);
		System.out.println("自定义time" + t1);
		System.out.println("根据字符串自定义生成时间带毫秒数" + t2);

		LocalDate date1 = LocalDate.of(2014, 3, 18);
		System.out.println(date1);
		LocalDate date2 = date1.withYear(2011);
		System.out.println(date2);
		LocalDate date3 = date2.withDayOfMonth(25);
		System.out.println(date3);
		LocalDate date4 = date3.with(ChronoField.YEAR_OF_ERA, 2017);
		System.out.println(date4);
		System.out.println(date4.plus(1L, ChronoUnit.MONTHS));

		LocalDate date = LocalDate.of(2014, 3, 18);
		date = date.with(ChronoField.MONTH_OF_YEAR, 10);
		date = date.plusYears(3).plusDays(12);
		date.withYear(2011);
		System.out.println(date);
		System.out.println("本月的第三个周日的日期" + date.with(TemporalAdjusters.dayOfWeekInMonth(3, DayOfWeek.SUNDAY)));
		System.out.println("本月的第一个周日" + date.with(TemporalAdjusters.firstInMonth(DayOfWeek.SUNDAY)));
        
		String authors = String.join(", ","Jarvan","Medusa");
		System.out.println(authors);

		LocalDate localDate = LocalDate.of(2014, 3, 18);
		localDate = localDate.with(ChronoField.MONTH_OF_YEAR, 10);
		localDate = localDate.plusYears(3).plusDays(12);
		localDate.withYear(2011);
		System.out.println(localDate);
		System.out.println("本月的第三个周日的日期" + localDate.with(TemporalAdjusters.dayOfWeekInMonth(3, DayOfWeek.SUNDAY)));
		System.out.println("本月的第一个周日" + localDate.with(TemporalAdjusters.firstInMonth(DayOfWeek.SUNDAY)));
		System.out.println(LocalDate.of(2017, 10, 3).with(TemporalAdjusters.previousOrSame(DayOfWeek.TUESDAY)));

		LocalDate now = LocalDate.now();
		System.out.println("格式化" + now.format(DateTimeFormatter.ISO_LOCAL_DATE) + "\n");

		System.out.println("明天的日期" + LocalDate.now().with(temporal -> {
			DayOfWeek dow = DayOfWeek.of(temporal.get(ChronoField.DAY_OF_WEEK));
			int dayToAdd = 1;
			if (dow == DayOfWeek.FRIDAY)
				dayToAdd = 3;
			else if (dow == DayOfWeek.SATURDAY)
				dayToAdd = 2;
			return temporal.plus(dayToAdd, ChronoUnit.DAYS);
		}));
        // Date date = new Date();
		// Instant instant1 = date.toInstant();
		// System.out.println("Date获取今天是几号:" + date.getDate());
		//
		// Calendar calendar = Calendar.getInstance();
		// System.out.println("Calendar获取今天是几号:" + calendar.get(Calendar.DATE));
		//
		// Instant instant = Instant.now();
		// System.out.println("instant当前时间带毫秒:" + instant);
		//
		// LocalDate localDate = LocalDate.now();
		// System.out.println("当前日期:" + LocalDate.now());
		// System.out.println("LocalTime当前时间带毫秒:" + LocalTime.now());
		// System.out.println("当前日期加时间:" + LocalDateTime.now());
		// System.out.println("当前时间去除T和毫秒数:" + LocalDateTime.now().withNano(0).toString().replaceAll("T", " "));
		// System.out.println("创建时间:" + LocalDate.of(2014, 12, 25));
		// System.out.println("根据自定义格式创建时间:" + LocalDate.parse("14-2-20", DateTimeFormatter.ofPattern("yy-M-d")));
		// System.out.println("创建固定格式时间:" + LocalDate.parse("2014-02-28"));
		// LocalDate today = LocalDate.now();
		// System.out.println("当前日期:" + today);
		// System.out.println("当前年是否是闰年:" + localDate.isLeapYear());
		// System.out.println("本月的第一天:" + today.with(TemporalAdjusters.firstDayOfMonth()));
		// System.out.println("本月的第二天:" + today.withDayOfMonth(2));
		// LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth());
		// System.out.println("本月的最后一天:" + lastDayOfThisMonth);
		// System.out.println("本年的最后一天:" + today.with(TemporalAdjusters.lastDayOfYear()));
		// System.out.println("本月最后一天再后一天的日期:" + lastDayOfThisMonth.plusDays(1));
		// // 取2015年1月最后一个周一的日期,这个计算用Calendar要死掉很多脑细胞:
		// System.out.println("2015年1月最后一个周一的日期:" + LocalDate.parse("2015-01-01").with(TemporalAdjusters.lastInMonth(DayOfWeek.MONDAY)));
		// LocalTime t1 = LocalTime.of(9, 50, 12);
		// LocalTime t2 = LocalTime.parse("23:58:59.675", DateTimeFormatter.ISO_LOCAL_TIME);
		// System.out.println("自定义time:" + t1);
		// System.out.println("根据字符串自定义生成时间带毫秒数:" + t2);
	}

}

标签:TemporalAdjusters,System,测试,println,工具,now,LocalDate,Java8,out
From: https://blog.51cto.com/u_11906056/6984936

相关文章

  • Java8流式操作
    一.基本概念1.1为什么加入集合的流式操作JDK8的Stream是一个受到函数式编程和多核时代影响而产生的东西。很多时候我们需要到底层返回数据,上层再对数据进行遍历,进行一些数据统计,但是之前的JavaAPI中很少有这种方法,这就需要我们自己来Iterator来遍历,如果JDK能够为我......
  • Java8 高级功能CompletableFuture
    CompletableFuture功能测试CompletableFuture类实现了CompletionStage和Future接口。Future是Java5添加的类,用来描述一个异步计算的结果,但是获取一个结果时方法较少,要么通过轮询isDone,确认完成后,调用get()获取值,要么调用get()设置一个超时时间。但是这个get()方法会阻塞住调用......
  • 2023年多校联训NOIP层测试2
    T1 斐波那契树题目思路题解做法:可以先把白色边权看成1,黑色边权看成0,求最小生成树和最大生成树,判断这两个值之间是否存在一个斐波那契数。可以证明这中间的值都是可以出现的(参考求恰好k条白边的思路,BZOJ2654)。我的做法:找到最小生成树和最大生成树的值。看它们是否在点击......
  • dperf minio 团队开源的磁盘性能测试工具
    dperfminio团队开源的磁盘性能测试工具基于golang开发,使用简单,类似的有fio说明相比fiodperf没有那么多的参数,实际上dperf核心似乎主要是为了方便minio使用的,但是对于日常中需要测试一些磁盘问题也是可以的,可以用来发现磁盘的瓶颈参考资料https://github.com/minio/dpe......
  • SPSS「统计分析工具」免费下载 官方版特色
    SPSS是一款界面直观、功能强大、专业可靠的数据分析平台和综合性统计分析工具。SPSS具备了数据录入、资料编辑、数据管理、统计分析、报表制作、图形绘制功能。SPSS是当前数据分析人员的热门工具,在科学研究、市场调研、医疗、金融等行业领域应用广泛。软件地址:看置顶贴SPSS功能......
  • SPSS「统计分析工具」免费下载 官方版特色
    SPSS是一款界面直观、功能强大、专业可靠的数据分析平台和综合性统计分析工具。SPSS具备了数据录入、资料编辑、数据管理、统计分析、报表制作、图形绘制功能。SPSS是当前数据分析人员的热门工具,在科学研究、市场调研、医疗、金融等行业领域应用广泛。软件地址:看置顶贴SPSS功能......
  • Java HDFS上传下载文件测试
    JavaHDFS上传下载文件测试HDFS引用mavenpom.xml加入引用<!--3.1.2--><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>3.0.0</version>......
  • RequestId生成工具类,兼顾可读性和随机性
    RequestId生成工具类,兼顾可读性和随机性生成的id是这样的202308060935013260E345D142718AF524202307301911464809D0978E04DB2458AD这两个样例的requestId包括了日期、时间、一串随机数字和字母。可以使用以下格式来生成requestId:日期(年月日):20230806时间(小时分钟秒):0935一......
  • 开源.NetCore通用工具库Xmtool使用连载 - XML操作篇
    【Github源码】《上一篇》介绍了Xmtool工具库中的发送短信类库,今天我们继续为大家介绍其中的XML操作类库。XML操作是软件开发过程中经常会遇到的情况;包括XML内容的遍历解析,或者特定值内容的查询获取等等。Xmtool工具库提供了一种更方便的方式对Xml进行遍历解析或者对特定节点......
  • Unity 编辑器选择器工具类Selection 常用函数和用法
    Unity编辑器选择器工具类Selection常用函数和用法点击封面跳转下载页面简介在Unity中,Selection类是一个非常有用的工具类,它提供了许多函数和属性,用于操作和管理编辑器中的选择对象。本文将介绍Selection类的常用函数和用法,并提供相应的示例代码。静态属性1.activeConte......