zoukankan      html  css  js  c++  java
  • java8-时间日期API

    1、传统时间格式化的线程安全问题

    SimpleDateFormat 是线程不安全的

    2、LocalDate , LocalTime, LocalDateTime

    public void test(){
        //获取当前时间
        LocalDateTime ldt = LocalDateTime.now();
        System.out.println(ldt);
    
        //获取某个具体的时间
        LocalDateTime ldt2 = LocalDateTime.of(2021, 2, 3, 22, 10);
        System.out.println(ldt2);
    
        //年的加减
        LocalDateTime ldt3 = ldt.plusYears(1);
        System.out.println(ldt3);
    
        //获取某个时间的年、月、日
        System.out.println(ldt.getYear());
        System.out.println(ldt.getMonth());
    }

    clipboard

    3、Instant: 时间戳(以Unix:1970年1月1日00:00:00 到某个时间之间的毫秒值)

    @Test
    public void test2(){
        //默认获取 UTC 时区(美国那边的时区)
        Instant ins1 = Instant.now();
        System.out.println(ins1);
    
        //标准时区偏移8小时
        OffsetDateTime offsetDateTime = ins1.atOffset(ZoneOffset.ofHours(8));
        System.out.println(offsetDateTime);
    
        //时间转化为毫秒
        System.out.println(ins1.toEpochMilli());
    }

    clipboard

    4、Duration: 计算两个时间之间的间隔   Period: 计算两个日期之间的间隔

    @Test
    public void test3() throws InterruptedException {
        Instant ins1 = Instant.now();
        Thread.sleep(1000);
        Instant ins2 = Instant.now();
        Duration duration = Duration.between(ins1, ins2);
        System.out.println("两个时间相差:"+duration.getSeconds()+"s");
        
        LocalDate ld1 = LocalDate.of(2021, 2, 10);
        LocalDate now = LocalDate.now();
        Period between = Period.between(ld1, now);
        System.out.println(between);
        System.out.println(between.getDays());
    }

    clipboard

    5、时间矫正器

    TemporalAdjuster:时间矫正器。有时候我们需要获取例如:将日期调整到 ”下个周日“等操作

    TemporalAdjusters:该类通过静态方法提供了大量的常用 TemporalAdjuster的实现

    例如获取下个周日:

    LocalDate nextSunday = LocalDate.now() .with(TemporalAdjusters.next(DayOfWeek.SUNDAY))

    public void test1(){
        LocalDateTime ldt = LocalDateTime.now();
        System.out.println("当前时间为:"+ldt);
        //求下一个周日
        LocalDateTime nextSunday = ldt.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
        System.out.println("下一个周日为:"+nextSunday);
    
    
        //自定义: 下一个工作日
        // 传进来的参数 l ,其实就是 ldt
        LocalDateTime nextweekday = ldt.with((l) -> {
            LocalDateTime local = (LocalDateTime)l;
            DayOfWeek dayOfWeek = local.getDayOfWeek();
            if(dayOfWeek.equals(DayOfWeek.FRIDAY)){
                return local.plusDays(3);
            }else if(dayOfWeek.equals(DayOfWeek.SATURDAY)){
                return local.plusDays(2);
            }else{
                return local.plusDays(1);
            }
        });
        System.out.println(nextweekday);
    }

    clipboard

    6、时间格式化与时区的处理

    1) 时间格式化

    public void test(){
        // 时间转化为固定格式的字符串
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss");
        LocalDateTime ldt = LocalDateTime.now();
        String result = ldt.format(formatter);
        System.out.println(result);
    
        //固定格式的字符串转化为时间
        //这里不知道哪儿出错了...
        LocalDateTime parse = ldt.parse(result,formatter);
        System.out.println(parse);
    }

    2)时区处理

    //ZoneDate  ZoneTime  ZoneDateTime
    @Test
    public void test1(){
        //1、查看所有支持时区
        Set<String> availableZoneIds = ZoneId.getAvailableZoneIds();
        System.out.println(availableZoneIds);
    
        //2、创建时间时,指定时区
        LocalDateTime ldt = LocalDateTime.now(ZoneId.of("Asia/Aden"));
        //或者
        LocalDateTime ldt2 = LocalDateTime.now();
        ZonedDateTime zonedDateTime = ldt2.atZone(ZoneId.of("Asia/Aden"));
    }
  • 相关阅读:
    C# 获取 域(AD) 用户信息
    如何在 MOSS 2007 启用 Session
    安装 卸载 回收 sharepoint 解决方案 moss wss wsp
    [转]挑战Windows极限:物理内存
    霍特卡的 CSLA.Net 3.6 Windows及Silverlight的正式版 昨天发布 同时CSLA.Net 业务对象 2008 英文版图书可以网上订购
    转帖如何在不联网的情况下安装 Silverlight Tools
    jQuery 选择器的使用
    关闭 Windows Server 2008 用户权限控制(UAC)
    jQuery 的第一个例子
    jQuery for Asp.Net 一步一步从入门到精通(附 jQuery API 彩色大图)
  • 原文地址:https://www.cnblogs.com/houchen/p/14370329.html
Copyright © 2011-2022 走看看