• java8时间使用小结


    //LocalDate代表一个IOS格式(yyyy-MM-dd)的日期 获取当前的日期:
    	LocalDate localDate = LocalDate.now();//LocalDate: 表示没有时区的日期, LocalDate是不可变并且线程安全的
    	System.out.println("localDate: " + localDate);//localDate: 2017-08-24
    	//LocalDate可以指定特定的日期,调用of或parse方法返回该实例:
    	System.out.println(LocalDate.of(2017, 07, 20));//2017-07-20
    	System.out.println(LocalDate.parse("2017-07-20"));//2017-07-20
    	//为今天添加一天,也就是获取明天
    	System.out.println(LocalDate.now().plusDays(1));//2017-08-25
    	//为今天添加7天,也就是获取一个礼拜之后的今天
    	System.out.println(LocalDate.now().plusWeeks(1));//2017-08-31
    	//为今天添加一个月,也就是获取一个月后的今天
    	System.out.println(LocalDate.now().plusMonths(1));//2017-09-24
    	//为今天添加一年,也就是获取一年后的今天
    	System.out.println(LocalDate.now().plusYears(1));//2018-08-24
    	//从今天减去一个月  (跟加同理 可获取减去1天、 1个礼拜、  1年之后的时间)
    	System.out.println(LocalDate.now().minus(1, ChronoUnit.MONTHS));//2017-07-24
    	System.out.println(LocalDate.now().minusMonths(1));//2017-07-24
    	//解析日期 2017-07-20,获取每周中的星期和每月中的日 等
    	System.out.println("周四: " +LocalDate.parse("2017-07-20").getDayOfWeek());//THURSDAY
    	System.out.println("日: " +LocalDate.parse("2017-07-20").getDayOfMonth());//20
    	System.out.println("月: " +LocalDate.parse("2017-07-20").getMonthValue());//7
    	System.out.println("年: " +LocalDate.parse("2017-07-20").getYear());//2017
    	System.out.println("月: " +LocalDate.parse("2017-07-20").getMonth());//JULY
    	//今年是不是闰年(闰年判断)
    	System.out.println(LocalDate.now().isLeapYear());//false
    	//判断是否在日期之前或之后:
    	System.out.println(LocalDate.parse("2017-07-20").isAfter(LocalDate.parse("2017-07-21")));//false
    	System.out.println(LocalDate.parse("2017-07-20").isBefore(LocalDate.parse("2017-07-21")));//true
    	System.out.println(LocalDate.parse("2217-07-20").isBefore(LocalDate.parse("2017-07-21")));//false
    	//获取这个月的第一天:
    	System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.firstDayOfMonth()));//2017-07-01
    	//获取下个月的第一天,等等。。
    	System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.firstDayOfNextMonth()));//2017-08-01	
    	System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.lastDayOfMonth()));//2017-07-31
    	System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.firstDayOfNextYear()));//2018-01-01
    	System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.firstDayOfYear()));//2017-01-01
    	//判断今天是否是我的生日,例如我的生日是 2006-07-20
    	LocalDate birthday = LocalDate.of(2006, 07, 20);
    	MonthDay birthdayMd = MonthDay.of(birthday.getMonth(),birthday.getDayOfMonth()); 
    	MonthDay today=MonthDay.from(LocalDate.now());
    	System.out.println("今天是否是我的生日: " + today.equals(birthdayMd));//false
    	System.out.println("=======LocalTime表示一个时间,而不是日期===========");
    	//获取现在的时间 09:52:19.446
    	System.out.println("现在的时间: " +LocalTime.now());
    	//将一个字符串时间解析为LocalTime
    	System.out.println( LocalTime.parse("15:02"));//15:02
    	//使用静态方法of创建一个时间
    	System.out.println(LocalTime.of(16, 02));//16:02
    	//使用解析字符串的方式并添加一小时,输出16:02
    	System.out.println(LocalTime.parse("15:02").plus(1, ChronoUnit.HOURS));//16:02
    	System.out.println(LocalTime.parse("15:02").plus(10, ChronoUnit.MINUTES));//15:12
    	//获取时间的小时、分钟
    	System.out.println(LocalTime.parse("15:02").getHour());//15
    	System.out.println(LocalTime.parse("15:02").getMinute());//2
    	//检查一个时间是否在另一个时间之前、之后
    	System.out.println(LocalTime.parse("15:02").isAfter(LocalTime.parse("14:02")));//true
    	System.out.println(LocalTime.parse("15:02").isBefore(LocalTime.parse("14:02")));//false
    	//每天的开始与结束时间
    	System.out.println(LocalTime.MAX);//23:59:59.999999999
    	System.out.println(LocalTime.MIN);//00:00
    	System.out.println("=======LocalDateTime是用来表示日期和时间的,这是一个最常用的类之一===========");
    	System.out.println("现在: " +LocalDateTime.now());//2017-08-24T10:31:03.600
    	//LocalDateTime也提供了相关API来对日期和时间进行增减操作
    	System.out.println("明天的现在: " +LocalDateTime.now().plusDays(1));//2017-08-25T10:33:05.363
    	//获取当前月份等等
    	System.out.println(LocalDateTime.now().getMonthValue());//8
    	System.out.println(LocalDateTime.now().getMonth());//AUGUST
    	System.out.println(LocalDateTime.now().getYear());//2017
    	//日期格式化
    	System.out.println("======日期格式化=======");
    	LocalDateTime now = LocalDateTime.now();
    	DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    	System.out.println("默认格式化: " + now);
    	System.out.println("自定义格式化: " + now.format(dateTimeFormatter));
    	LocalDateTime localDateTime = LocalDateTime.parse("2017-07-20 15:27:44", dateTimeFormatter);
    	System.out.println("字符串转LocalDateTime: " + localDateTime.format(dateTimeFormatter));
    	
    	DateTimeFormatter dateTimeFormatter_s = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    	String dateString = dateTimeFormatter_s.format(LocalDate.now());
    	System.out.println("日期转字符串: " + dateString);
    	//日期和周期 Period类用于修改给定日期或获得的两个日期之间的区别。
    	LocalDate initialDate = LocalDate.parse("2017-07-20");
    	LocalDate finalDate = initialDate.plus(Period.ofDays(5));//给初始化的日期添加5天
    	System.out.println("初始化日期: " + initialDate);//2017-07-20
    	System.out.println("加日期之后: " + finalDate);//2017-07-25
    	//周期(Period)API中提供给我们可以比较两个日期的差别,像下面这样获取差距天数:(同理可以获取两个时间相差的小时、周、月、年)
    	long between = ChronoUnit.DAYS.between(initialDate, finalDate);
    	System.out.println("差距天数: " + between);//5
    	//如何将Date类转换为Java8中的时间类
    	//Date和Instant互相转换
    	Date date = Date.from(Instant.now());
    	Instant instant = date.toInstant();
    	//Date转换为LocalDateTime

    ZoneId zoneId = ZoneId.systemDefault();
    LocalDateTime localDateTime = new Date().toInstant().atZone(zoneId).toLocalDateTime();
    System.out.println("LocalDateTime = " + localDateTime);
    //LocalDateTime转Date Date date_s = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); System.out.println(date_s); //LocalDate转Date Date date_t = Date.from(LocalDate.now().atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()); System.out.println(date_t);

      

  • 相关阅读:
    check whether trace enabled
    11g新特性之IO校准(IO Calibration)
    缩小Oracle的系统表空间(SYSTEM、TEMP、UNDOTBS1、SYSAUX)
    性能优化】optimizer statistics统计信息管理技巧
    cluster c_obj#intcol# is growing too fast
    查询高水位
    SYSAUX and purging big objects (segments) manually
    第44课 继承中的访问级别
    第43课 继承的概念和意义
    第39课 逗号操作符的分析
  • 原文地址:https://www.cnblogs.com/ipetergo/p/7423492.html
Copyright © 2020-2023  润新知