博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 8 新特性 时间api使用实例
阅读量:7126 次
发布时间:2019-06-28

本文共 4203 字,大约阅读时间需要 14 分钟。

hot3.png

java 8 提供的 时间api java.time 比原来的Calendar 方便很多。主要提供了

日期类:LocalDate
时间类:LocateDateTime
时间戳操作类:Instant
时间持续时间计算:Duration
时区:ZoneId
日期间隔:Period
java 8 api 是整合了原第三方工具(org.joda.time),使用将会更加方便。

以下实例针对,日常使用的时间计算方式,进行实例验证。可以根据自己需要提取,时间工具类。

以下是具体的使用实例,建议大家都转换新的时间方式,虽然中间可能要花费些时间,但个人感觉还是值得。

public static void main(String[] args) {		Instant first = Instant.now();		// Current Time		LocalTime time = LocalTime.now();		System.out.println("Current Time=" + time);		// Creating LocalTime by providing input arguments		LocalTime specificTime = LocalTime.of(12, 20, 25, 40);		System.out.println("Specific Time of Day=" + specificTime);		// Try creating time by providing invalid inputs		// Current date in "Asia/Kolkata", you can get it from ZoneId javadoc		LocalTime timeKolkata = LocalTime.now(ZoneId.of("Asia/Kolkata"));		System.out.println("Current Time in IST=" + timeKolkata);		// Getting date from the base date i.e 01/01/1970		LocalTime specificSecondTime = LocalTime.ofSecondOfDay(10000);		System.out.println("10000th second time= " + specificSecondTime);		// 今日		LocalDate localDate = LocalDate.now();		System.out.println("今日日期:" + localDate);		// Create		LocalDate firstDay_2017 = LocalDate.of(2017, Month.JANUARY, 1);		System.out.println("Specific Date=" + firstDay_2017);		LocalDate hundredDay2017 = LocalDate.ofYearDay(2017, 200);		System.out.println("200th day of 2017=" + hundredDay2017);		// plus and minus operations		System.out.println("昨天日期: " + localDate.minusDays(1));		System.out.println("明天日期: " + localDate.plusDays(1));		System.out.println("上月的今天:" + localDate.minusMonths(1));		System.out.println("下个月的今天:" + localDate.plusMonths(1));		// Temporal adjusters for adjusting the dates		System.out.println("本月第1天的日期: " + localDate.with(TemporalAdjusters.firstDayOfMonth()));		System.out.println("本月最后1天的日期: " + localDate.with(TemporalAdjusters.lastDayOfMonth()));		System.out.println("本年最后1天的日期: " + localDate.with(TemporalAdjusters.lastDayOfYear()));		// TemporalFieldfor adjusting the dates		System.out.println("今天是:" + localDate.getYear() + "第" + localDate.get(ChronoField.ALIGNED_WEEK_OF_YEAR) + "周");		System.out.println("今天是周: " + localDate.getDayOfWeek());		System.out.println("今天是本周的第:" + localDate.getDayOfWeek().getValue() + "天");		// before		System.out.println("今天在20171001日之前:" + localDate.isBefore(LocalDate.of(2017, 10, 1)));		// 格式化		System.out.println("格式化:" + localDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));		// Instant 时间戳转换		System.out.println("当前时间:" + Instant.now().atZone(ZoneId.systemDefault()));		System.out.println("当前的时间戳:" + Instant.now().toEpochMilli());		System.out.println(				"时间戳转为时间字符串:" + Instant.ofEpochMilli(Instant.now().toEpochMilli()).atZone(ZoneId.systemDefault()));		// Locale date time		// Current Date		LocalDateTime today = LocalDateTime.now();		System.out.println("Current DateTime=" + today);		// Current Date using LocalDate and LocalTime		today = LocalDateTime.of(LocalDate.now(), LocalTime.now());		System.out.println("Current DateTime=" + today);		// Creating LocalDateTime by providing input arguments		LocalDateTime specificDate = LocalDateTime.of(2014, Month.JANUARY, 1, 10, 10, 30);		System.out.println("Specific Date=" + specificDate);		// Current date in "Asia/Kolkata", you can get it from ZoneId javadoc		LocalDateTime todayKolkata = LocalDateTime.now(ZoneId.of("Asia/Kolkata"));		System.out.println("Current Date in IST=" + todayKolkata);		// Getting date from the base date i.e 01/01/1970		LocalDateTime dateFromBase = LocalDateTime.ofEpochSecond(10000, 0, ZoneOffset.UTC);		System.out.println("10000th second time from 01/01/1970= " + dateFromBase);		// Duration example		Duration thirtyDay = Duration.ofDays(30);		System.out.println("30天" + thirtyDay);		// wait some time while something happens		Instant second = Instant.now();		// 计算两个时间,之间的长度 持续运行时间		Duration duration = Duration.between(first, second);		System.out.println("程序运行时间:" + duration);		// 日期间隔计算		Period period = localDate.until(localDate.with(TemporalAdjusters.lastDayOfYear()));		System.out.println("Period Format= " + period);		System.out.println("Months remaining in the year= " + period.getMonths());	}

 

转载于:https://my.oschina.net/u/3247419/blog/1559323

你可能感兴趣的文章
Java设计模式(十一) 享元模式
查看>>
前端面试问题集
查看>>
三天学会HTML5——SVG和Canvas的使用
查看>>
uliweb中ORM的nullable和server default的处理
查看>>
在线CRM集成进销存,助力企业全面发展
查看>>
Java学习—网络编程(TCP)
查看>>
git 收集
查看>>
Redis作者谈Redis应用场景
查看>>
十大经典排序算法(动图演示)转
查看>>
美团2012研发工程师笔试题(数数字问题)
查看>>
LEXUS 混合动力
查看>>
Android中的设计模式之命令模式
查看>>
故障发生时的人物速写
查看>>
superset连接数据库,以及汉化
查看>>
web作用域(4个)
查看>>
JAVA SSH 项目的首页数据应该怎么显示
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
金山快盘开发(六)
查看>>
迅为三星Exynos嵌入式开发平台超强GPS模块
查看>>