zoukankan      html  css  js  c++  java
  • 【Java】【常用类】LocalDateTime 当前日期时间类 相关

    LocalDate主要的三个API类:

    java.time.LocalDate;
    java.time.LocalDateTime;
    java.time.LocalTime;

    LocatDate对象获取:

    @Test
    void contextLoads() {
        // 获取方式
        LocalDate localDate = LocalDate.now();
        System.out.println(localDate);
        LocalDate localDate1 = LocalDate.of(2020, 5, 23);
        System.out.println(localDate1);
        // 2020-09-28
        // 2020-05-23
        int year = localDate.getYear(); // 取年
        int monthValue = localDate.getMonthValue(); // 取月
        Month month = localDate.getMonth(); // 取月的枚举对象
        int monthValue1 = month.getValue(); // 具体值可以通过该枚举对象获取
        // 除此之外Month还有一些获取其他信息的方法
        int maxDaysLength = month.maxLength(); // 该月的最大天数
        int minDaysLength = month.minLength(); // 该月的最小天数
        int dayOfMonth = localDate.getDayOfMonth(); // 按当月取天数
        int dayOfYear = localDate.getDayOfYear(); // 按本年取天数
        DayOfWeek dayOfWeek = localDate.getDayOfWeek(); // 按本周取天数?
        // 和月枚举对象一样,这里也是一个周枚举对象
        int value = dayOfWeek.getValue();
        System.out.println(dayOfWeek); // 打印为 MONDAY ....
    }
    private static void cryptTest() {
        final String PASSWORD = "123456";
        PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
        String encode = passwordEncoder.encode(PASSWORD);
        System.out.println(encode);
        boolean matches = passwordEncoder.matches(PASSWORD, encode);
        System.out.println(matches);
    }

    LocalDateTime & LocalTime:

    @Test
    void contextLoads() {
        LocalDateTime localDateTime1 = LocalDateTime.now();
        LocalDateTime localDateTime2 = LocalDateTime.of(2020, 2, 2, 13, 24, 52);
        System.out.println(localDateTime1); // 2020-09-28T16:01:48.248
        System.out.println(localDateTime2); // 2020-02-02T13:24:52
    
        LocalTime localTime1 = LocalTime.now();
        LocalTime localTime2 = LocalTime.of(20, 2, 2);
        System.out.println(localTime1); // 16:03:41.330
        System.out.println(localTime2); // 20:02:02
    
        int hour = localTime1.getHour();
        int minute = localTime1.getMinute();
        int second = localTime1.getSecond();
        int nano = localTime1.getNano();
        System.out.println("时 -> " + hour);         // 时 -> 16
        System.out.println("分 -> " + minute);       // 分 -> 6
        System.out.println("秒 -> " + second);       // 秒 -> 26
        System.out.println("Nano -> " + nano);      // Nano -> 206000000
    }

    GET方法

    SET方法

    增加时间

    减少时间

    public class DateTest {
        public static void main(String[] args) {
            LocalDate now1 = LocalDate.now();
            LocalTime now2 = LocalTime.now();
            LocalDateTime now3 = LocalDateTime.now();
    
            System.out.println("LocalDate.now() -> " + now1);
            System.out.println("LocalTime.now() -> " + now2);
            System.out.println("LocalDateTime.now() -> " + now3);
            /*
                LocalDate.now() -> 2020-04-19
                LocalTime.now() -> 21:16:03.854
                LocalDateTime.now() -> 2020-04-19T21:16:03.854
            */
            LocalDateTime localDateTime = LocalDateTime.now();
            System.out.println("localDateTime.getDayOfWeek() -> " + localDateTime.getDayOfWeek() );     // 按周算天
            System.out.println("localDateTime.getDayOfMonth() -> " + localDateTime.getDayOfMonth() );   // 按月算天
            System.out.println("localDateTime.getDayOfYear() -> " + localDateTime.getDayOfYear() );     // 按年算天
            /*
                localDateTime.getDayOfWeek() -> SUNDAY
                localDateTime.getDayOfMonth() -> 19
                localDateTime.getDayOfYear() -> 110
             */
            System.out.println( localDateTime.getSecond()       );// 取秒
            System.out.println( localDateTime.getMinute()       );// 取分
            System.out.println( localDateTime.getHour()         );// 取时
            System.out.println( localDateTime.getMonth()        );// 取月 英文大写
            System.out.println( localDateTime.getMonthValue()   );// 取月 数值表示
            System.out.println( localDateTime.getYear()         );// 取年
            // set ×  with √
        }
    }

    instant 瞬时时间 ,精度达到纳秒级

    public class DateTest {
        public static void main(String[] args) {
            Instant instant = Instant.now();
            System.out.println(instant);
            //  2020-04-19T13:47:58.712Z 本初子午线的标准时间
    
            // 我们是东八时区,添加8小时的偏移量
            OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8));
            System.out.println(offsetDateTime);
    
            // 从实例获取毫秒数 时间戳
            long epochMilli = instant.toEpochMilli();
            System.out.println(epochMilli);
    
            // 通过时间戳注入产生instant实例
            Instant epochMilli1 = Instant.ofEpochMilli(epochMilli);
            System.out.println(epochMilli1);
        }
    }

    DateTimeFormatter

    public class DateTest {
        public static void main(String[] args) {
    
            // 预定义的标准格式
            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
    
            // 事件对象
            LocalDateTime now = LocalDateTime.now();
    
            // 转换格式 日期 -> 字符串格式
            String format = dateTimeFormatter.format(now);
    
            // 格式
            System.out.println( now );
            System.out.println( format );
    
            // 日期 转 字符串格式
            TemporalAccessor parse = dateTimeFormatter.parse("2020-03-19T22:09:46.345");
            System.out.println(parse);
    
            DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);
            // ofLocalizedDateTime();
            // ofLocalizedDate(); 按Date就支持FULL全格式
            // ofPattern("自定义格式"); "yyyy-MM-dd hh:mm:ss"
    
            // FormatStyle.FULL     2020年4月19日 星期日
            // FormatStyle.LONG     2020年4月19日 下午10时15分01秒
            // FormatStyle.MEDIUM   2020-4-19 22:14:28
            // FormatStyle.SHORT    20-4-19 下午10:16
    
            String format1 = dateTimeFormatter1.format(now);
            System.out.println(now);
            System.out.println(format1);
    
            TemporalAccessor parse1 = dateTimeFormatter1.parse(format1);
            System.out.println(parse1);
        }
    }

    案例,制作日历:

    @Test
    void contextLoads() {
        localDateCalendar();
    }
    
    private static void localDateCalendar() {
        LocalDate now = LocalDate.now();
        int year = now.getYear();
        int month = now.getMonth().getValue();
        int dayOfMonth = now.getDayOfMonth();
    
        // 设置这个月的第一天
        now = now.minusDays(dayOfMonth - 1);
        // 找到这一天为周几
        int value = now.getDayOfWeek().getValue();
    
        // 开始渲染控制台输出样式
        System.out.println("Mon Tue Wed Thu Fri Sat Sun");
        for (int i = 1; i < value; i++) System.out.print("   ");
        while (now.getMonthValue() == month) {
            System.out.printf("%3d", now.getDayOfMonth());
            if (now.getDayOfMonth() == dayOfMonth) System.out.print("*");
            else System.out.print(" ");
            now = now.plusDays(1);
            if (now.getDayOfWeek().getValue() == 1) System.out.println();
        }
        if (now.getDayOfWeek().getValue() != 1) System.out.println();
    }

    打印结果:

    Mon Tue Wed Thu Fri Sat Sun
         1   2   3   4   5   6 
      7   8   9  10  11  12  13 
     14  15  16  17  18  19  20 
     21  22  23  24  25  26  27 
     28* 29  30 

    其他API

    ZoneId
    
    ZoneDateTime
    
    Clock
    
    Duration
    
    Period
    
    TemporalAdjuster
    
    TemporalAdjusters

     

  • 相关阅读:
    MATLAB使用fft求取给定音频信号的频率
    python实现抓取必应图片设置桌面
    [原创]Nexus5 移植OneStep
    [原创]Nexus5 内核编译烧录过程记录
    repo版本切换
    pthread
    《Android进阶》Sqlite的使用
    【转】iOS夯实:ARC时代的内存管理
    【转】如何使App从后台返回前台时,显示指定界面
    【转】自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
  • 原文地址:https://www.cnblogs.com/mindzone/p/12734679.html
Copyright © 2011-2022 走看看