java8关于日期的一些操作实例

package com.example.demo_java8_new_characteristic.test;


import java.time.*;
import java.time.format.DateTimeFormatter;

/**
 * java8时间测试类
 */
public class Java8DateTest {

    public static void main(String[] args) {


        // Date and time with timezone in Java 8
        ZoneId america = ZoneId.of("America/New_York");
        LocalDateTime localtDateAndTime = LocalDateTime.now();
        ZonedDateTime dateAndTimeInNewYork  = ZonedDateTime.of(localtDateAndTime, america );
        System.out.println("Current date and time in a particular timezone : " + dateAndTimeInNewYork);

        /**
         * LocalDate
         */
        System.err.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>LocalDate<<<<<<<<<<<<<<<<<<<<<<<<");
        //获取当前日期,2019-12-27
        LocalDate localDate = LocalDate.now();
        System.err.println("当前日期>" + localDate);

        //获取当前年 2019
        System.err.println(localDate + "当前年>" + localDate.getYear());
        //获取当前月 12
        System.err.println(localDate + "当前月>" + localDate.getMonthValue());
        //获取当前年中的日 361
        System.err.println(localDate + "当前年中的日>" + localDate.getDayOfYear());
        //获取当前月中的日 27
        System.err.println(localDate + "当前月中的日>" + localDate.getDayOfMonth());
        //获取当前星期中的日 5
        System.err.println(localDate + "当前星期中的日>" + localDate.getDayOfWeek().getValue());
        //当前日期前一天,2019-12-26 minus:(表示运算)减去
        System.err.println(localDate + "前一天>" + localDate.minusDays(1));
        //当前日期后一天,2019-08-28 plus:(表示运算)加
        System.err.println(localDate + "后一天>" + localDate.plusDays(1));
        //当前日期前一月,2019-11-27 minus:(表示运算)减去
        System.err.println(localDate + "前一月>" + localDate.minusMonths(1));
        //当前日期后一月,2020-01-27 plus:(表示运算)加
        System.err.println(localDate + "后一月>" + localDate.plusMonths(1));
        //当前日期前一年,2018-12-27 minus:(表示运算)减去
        System.err.println(localDate + "前一年>" + localDate.minusYears(1));
        //当前日期后一年,2020-12-27 plus:(表示运算)加
        System.err.println(localDate + "后一年>" + localDate.plusYears(1));
        //当前日期前一周,2019-12-20 minus:(表示运算)减去
        System.err.println(localDate + "前一周>" + localDate.minusWeeks(1));
        //当前日期后一周,2020-01-03 plus:(表示运算)加
        System.err.println(localDate + "后一周>" + localDate.plusWeeks(1));


        /**
         * LocalTime
         */

        System.err.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>LocalTime<<<<<<<<<<<<<<<<<<<<<<<<");

        //获取当前时间 14:52:18.259
        LocalTime localTime = LocalTime.now();
        System.err.println("当前时间>" + localTime);
        //获取当前时 14
        System.err.println(localTime + "当前时>" + localTime.getHour());
        //获取当前分 52
        System.err.println(localTime + "当前分>" + localTime.getMinute());
        //获取当前秒 9
        System.err.println(localTime + "当前秒>" + localTime.getSecond());
        //当前时间前一时,13:54:27.370 minus:(表示运算)减去
        System.err.println(localTime + "前一时>" + localTime.minusHours(1));
        //当前时间后一时,15:54:46.763 minus:(表示运算)减去
        System.err.println(localTime + "后一时>" + localTime.plusHours(1));
        //当前时间前一分,14:54:11.102 minus:(表示运算)减去
        System.err.println(localTime + "前一分>" + localTime.minusMinutes(1));
        //当前时间后一分,14:56:33.259 minus:(表示运算)减去
        System.err.println(localTime + "后一分>" + localTime.plusMinutes(1));
        //当前时间前一秒,14:55:52.667 minus:(表示运算)减去
        System.err.println(localTime + "前一秒>" + localTime.minusSeconds(1));
        //当前时间后一秒,14:56:26.178 minus:(表示运算)减去
        System.err.println(localTime + "后一秒>" + localTime.plusSeconds(1));


        /**
         * localDateTime
         * LocalDateTime类是Java 8中日期时间功能里,用于表示当地的日期与时间的类,它的值是无时区属性的。
         * 你可以将其视为Java 8中LocalDate与LocalTime两个类的结合。
         * 你可以通过这些方法访问其日期时间
         *  getYear()
         getMonth()
         getDayOfMonth()
         getDayOfWeek()
         getDayOfYear()
         getHour()
         getMinute()
         getSecond()
         getNano()
         */
        System.out.println(">>>>>>>>>localDateTime<<<<<<<<");

        LocalDateTime localDateTime = LocalDateTime.now();
        System.err.println("当前完整日期>" + localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));



        /**
         * 时间格式化
         */
        System.out.println(">>>>>>>>>时间格式化<<<<<<<<");

        DateTimeFormatter formatDataTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        DateTimeFormatter formatDate = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        DateTimeFormatter formatTime = DateTimeFormatter.ofPattern("HH:mm:ss");

        String formatDataTimeStr = localDateTime.format(formatDataTime);
        String formatDateStr = localDateTime.format(formatDate);
        String formatTimeStr = localDateTime.format(formatTime);

        System.err.println("完整日期格式化之后" + formatDataTimeStr);
        System.err.println("日期格式化之后" + formatDateStr);
        System.err.println("时间格式化之后" + formatTimeStr);


        /**
         * 时间比较大小
         */
        System.out.println(">>>>>时间比较大小<<<<<");

        LocalDateTime time1 = LocalDateTime.parse("2018-05-12 08:30:30", formatDataTime);
        LocalDateTime time2 = LocalDateTime.parse("2018-04-20 16:30:30", formatDataTime);

        System.err.println("time1=" + time1);
        System.err.println("time2=" + time2);

        System.err.println("time1==time2:" + time1.isEqual(time2));
        System.err.println("time1>time2:" + time1.isAfter(time2));
        System.err.println("time1<time2:" + time1.isBefore(time2));
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值