java时间工具类和常用方法

123
java时间工具类和常用方法




 public static void main(String[] args) {
        method10();
    }

    public static void method10() {
        /**
         * 加密
         */
        try {
            String password = "123456";
            MessageDigest md5 = MessageDigest.getInstance("MD5");
            md5.update(password.getBytes());
            byte[] digest = md5.digest();
            System.out.println(Arrays.toString(digest));
            BigInteger bigInteger = new BigInteger(1, digest);
            String string = bigInteger.toString(16);
            System.out.println(string);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

    }

    public static void method9() {
        /**
         * 编码解码类
         *
         */
        String s = "123456";
        //得到一个编码器
        Base64.Encoder encoder = Base64.getEncoder();
        byte[] encode = encoder.encode(s.getBytes());
        System.out.println(Arrays.toString(encode));
        System.out.println(new String(encode));
        //得到一个解码器
        Base64.Decoder decoder = Base64.getDecoder();
        byte[] decode = decoder.decode(encode);
        System.out.println(Arrays.toString(decode));
        System.out.println();
    }

    public static void method8() {
        /**
         * 随机数类
         * random/ThreadLocalRandom
         */
        //生成随机数
        Random random = new Random();
        for (int i = 0; i < 20; i++) {
            System.out.println(random.nextInt(40));
        }

    }

    public static void method7() {
        /**
         *  NumberFormat
         *  用来格式化数字的
         *  NumberFormat是一个抽象类,必须使用子类DecimalFormat
         *  #.##  保留两位小数
         *  #.##%  百分比保留两位小数
         *  ,###   每三位以逗号分开
         */
        //保留两位小数
        DecimalFormat decimalFormat = new DecimalFormat("#.##");
        System.out.println(decimalFormat.format(56.2121));
        //百分比保留两位小数
        DecimalFormat decimalFormat1 = new DecimalFormat("#.##%");
        System.out.println(decimalFormat1.format(452.212212));
        //每三位以逗号分开
        DecimalFormat decimalFormat2 = new DecimalFormat(",###");
        System.out.println(decimalFormat2.format(1221564126));

    }

    public static void method6() {
        //既有日期也有时间
        /**
         * DateTimeFormatter  除了Date都可以处理
         */
        LocalDateTime now = LocalDateTime.now();
        System.out.println(now);
        //使用ofPattern这个方法来实例
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        //转成String
        String format = dateTimeFormatter.format(now);
        System.out.println(format);
        //使用LocalDateTime  转换为原始的形式  要告诉他格式是怎样的,否则会报错
        LocalDateTime parse = LocalDateTime.parse(format, dateTimeFormatter);
        System.out.println(format);

    }

    public static void method5() {
        /**
         * 日期转换类
         */
        Date date = new Date();
        //yyyy年  MM月  dd日 HH小时  mm分钟  ss秒
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //转化为String类型
        String format = simpleDateFormat.format(date);
        System.out.println(format);
        try {
            //把String转Date
            Date parse = simpleDateFormat.parse(format);
            System.out.println(parse);
        } catch (ParseException e) {
            e.printStackTrace();
        }

    }

    public static void method4() {
        /**
         * LocalDate
         * 重点处理的是和日期相关的
         */
        LocalDate now = LocalDate.now();
        System.out.println(now);
        //得到一个指定的日期  of()
        LocalDate of = LocalDate.of(2020, 12, 21);
        System.out.println(of);

        System.out.println("获取年:" + now.getYear());
        System.out.println("本周的第几天:" + now.getDayOfWeek());
        System.out.println("本月的第几天:" + now.getDayOfMonth());
        System.out.println("本年的第几天:" + now.getDayOfYear());
        System.out.println("是否为闰年:" + now.isLeapYear());
        //两段时间相差多少天
        long until = of.until(now, ChronoUnit.DAYS);

    }

    public static void method3() {
        /**
         * Instant
         */
        //Zone  用UTC的时间刻度,此类是不可变的,线程安全
        Instant now = Instant.now();
        System.out.println(now);
        //加8小时
        Instant plus = now.plus(8, ChronoUnit.HOURS);
        System.out.println(plus);
        long until = now.until(Instant.now(), ChronoUnit.HOURS);
        System.out.println("相差毫秒数:" + until);
    }

    public static void method2() {
        /**
         * Calendar
         */
        //使用getInstance这个方法,拿到Calendar 的实例,他是一个静态方法
        Calendar instance = Calendar.getInstance();
        //1代表年,2代表月  3代表日
        System.out.println(instance.get(3) + 1);
        //年
        System.out.println("年:" + instance.get(Calendar.YEAR));
        System.out.println("月:" + instance.get(Calendar.MONTH) + 1);//0-11,所以要加上1
        System.out.println("日:" + instance.get(Calendar.DATE));
        System.out.println("小时:" + instance.get(Calendar.HOUR));
        System.out.println("分钟:" + instance.get(Calendar.MINUTE));
        //转换成Date类型的
        Date time = instance.getTime();
        //获取一个月中最后一天
        System.out.println(instance.getActualMaximum(Calendar.DATE));
    }

    public static void method1() {
        /**
         * Date
         */
        Date date = new Date();
        System.out.println(date);
        //距1970 1月 1日 0:0分 过了多少毫秒
        Date date1 = new Date(1000000000);
        System.out.println(date1);
        //转换成一个long类型的值,使用getTime
        long time = date.getTime();
        System.out.println(time);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //format,转换成字符串格式
        String format = simpleDateFormat.format(date);
        System.out.println(format);
    }
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值