java8 新日期和时间demo

 //LocalDateTime
    private static void test1() {
        //初始化日期和时间
        LocalDateTime ldt1=LocalDateTime.of(2016,10,04,10,40,50);
        System.out.println(ldt1);//2016-10-04T10:40:50

        //获取当前日期和时间
        LocalDateTime ldt2=LocalDateTime.now();
        System.out.println(ldt2);//2017-11-04T11:02:57.721

        //增加年
        LocalDateTime ldt3=ldt2.plusYears(2);//2019-11-04T11:02:57.721
        System.out.println(ldt3);
        //减少分钟
        LocalDateTime ldt4=ldt2.minusMinutes(30);//2017-11-04T10:32:57.721
        System.out.println(ldt4);

        //获取年月日时分秒
        System.out.println("年:"+ldt2.getYear());//年:2017
        System.out.println("月:"+ldt2.getMonthValue());//月:11
        System.out.println("日:"+ldt2.getDayOfMonth());//日:4
        System.out.println("时:"+ldt2.getHour());//时:11
        System.out.println("分:"+ldt2.getMinute());//分:2
        System.out.println("秒:"+ldt2.getSecond());//秒:57
    }

LocalDateTime使用

//Instant:时间戳(以Unix元年:1970年1月1日0点0分0秒 到指定时间的毫秒值
    private static void test2(){

        Instant ins1=Instant.now();//默认获取UTC时区
        System.out.println(ins1);//2017-11-04T03:23:45.442Z

        //获取东八区时间(北京时间)
        OffsetDateTime odt= ins1.atOffset(ZoneOffset.ofHours(8));//2017-11-04T11:23:45.442+08:00
        System.out.println(odt);
        //获取毫秒值
        System.out.println(ins1.toEpochMilli());//1509765825442
        //获取秒值
        System.out.println(odt.toEpochSecond());//1509765825

        Instant ins2=Instant.ofEpochMilli(60);//1970-01-01T00:00:00.060Z
        System.out.println(ins2);
    }

Instant:时间戳(以Unix元年:1970年1月1日0点0分0秒 到指定时间的毫秒值

//计算时间间隔
    private static void test3(){
        //第一种方式
        Instant  ins1=Instant.now();
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        Instant ins2=Instant.now();
        Duration duration=Duration.between(ins1,ins2);
        System.out.println("间隔的毫秒:"+duration.toMillis());//间隔的毫秒:1031
        System.out.println("间隔的天:"+duration.toDays());//间隔的天:0
        System.out.println("间隔的小时:"+duration.toHours());//间隔的小时:0
        System.out.println("间隔的分钟:"+duration.toMinutes());//间隔的分钟:0
        System.out.println("间隔的纳秒:"+duration.toNanos());//间隔的纳秒:1031000000

        //第二种方式
        LocalTime lt1=LocalTime.now();
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        LocalTime lt2=LocalTime.now();

        System.out.print(Duration.between(lt1,lt2).toMillis());//2000毫秒
    }

计算时间间隔

   private static void test4(){
        LocalDate ld1=LocalDate.of(2015,1,1);
        LocalDate ld2=LocalDate.now();
        System.out.println(ld2);//2017-11-04

        Period period=Period.between(ld1,ld2);
        System.out.println(period);//P2Y10M3D

        System.out.println(period.getYears());//2
        System.out.println(period.getMonths());//10
        System.out.println(period.getDays());//3
    }

计算日期间隔

时间: 2024-08-29 23:19:36

java8 新日期和时间demo的相关文章

java8新特性——新日期和时间API

一.LocalDate,LocalTime,LocalDateTime LocalDate,LocalTime,LocalDateTime类的实例是不可改变的,分别表示使用ISO-8601日历系统的日期,时间,日期和时间.他们提供了简单的日期或时间,并不包含当前的时间信息.也不包含与地区相关的信息. //1.当前时间对象 LocalDateTime ldt = LocalDateTime.now(); System.out.println(ldt); //2.自定义时间对象 LocalDateT

java8 新日期

java8新的时间日期库及使用示例

来自:Java译站 链接:http://it.deepinmind.com/java/2015/03/17/20-examples-of-date-and-time-api-from-Java8.html 英文:http://javarevisited.blogspot.sg/2015/03/20-examples-of-date-and-time-api-from-Java8.html 本文根据上述资料进行整理修改说明 java8引入了一套全新的时间日期API,本篇随笔将说明学习java8的这

【Java基础08】内部类、枚举类、日期和时间、Math、Random

1 内部类 1.1 概念 大部分时候,类被定义成一个独立的程序单元,在某些情况下,也会把一个类放到另一个类的内部定义,这个定义在其他类内部的类就被称为内部类,包含内部类的类被称为外部类. 1.2 作用 1.提供更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类. 2.内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,同一个类的成员之间可以互相访问.但外部类不能访问内部类的实现细节,例如内部类的成员变量. 3.匿名内部类适合用于创建那些仅需要一次使用的类

java8新特性之 日期和时间

在Java 8以前,日期和时间处理一直被广大java程序员抱怨太难用,java.util和java.sql中,都包含Date类,如果要进行时间格式化,还需要java.text.DateFormat类处理.同时java.util.Date中既包含了日期,又包含了时间,所以java8新的日期和时间库,很好的解决了以前日期和时间类的很多弊端.并且也借鉴了第三方日期库joda很多的优点. java.time包下主要包含下面几个主要的类: Instant:时间戳 Duration:持续时间,时间差 Loc

Java8新特性之:新的日期和时间API

一. LocalDate.LocalTime.Instant.Duration以及Period 1.LocalDate只提供日期,不含当天时间信息 LocalDate date = LocalDate.of(2018, 5, 03); int year = date.getYear(); Month month = date.getMonth(); int day = date.getDayOfMonth(); DayOfWeek dow = date.getDayOfWeek(); int l

Java8新特性_日期时间新类 LocalDate、LocalTime、LocalDateTime

import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.Exec

java8 - 新的时间日期API示例

Java 8之前的库对时间和日期的支持非常不理想,不用担心,在Java 8中引入全新的时间和日期API,并且都是线程安全的 新时间日期API常用对象介绍 LocalDate: 表示没有时区的日期, LocalDate是不可变且线程安全 LocalTime: 表示没有时区的时间, LocalTime是不可变且线程安全 LocalDateTime: 表示没有时区的日期时间, LocalDateTime是不可变且线程安全 ZoneId: 时区ID,用来确定Instant和LocalDateTime互相

对Java8新的日期时间类的学习(二)

示例11 在Java中如何判断某个日期是在另一个日期的前面还是后面 这也是实际项目中常见的一个任务.你怎么判断某个日期是在另一个日期的前面还是后面,或者正好相等呢?在Java 8中,LocalDate类有一个isBefore()和isAfter()方法可以用来比较两个日期.如果调用方法的那个日期比给定的日期要早的话,isBefore()方法会返回true. LocalDate today = LocalDate.now(); LocalDate tomorrow = LocalDate.of(2