Java常用类(四)

本文介绍了Java中的Date,Calendar,SimpleDateFormat,BigDecimal和BigInteger类的使用,包括它们各自的功能、实例演示以及在处理时间和数值计算中的应用,提醒读者注意日期类型转换和精度问题。
摘要由CSDN通过智能技术生成


前言

本章主要介绍Date,Calendar,SimpleForrnat,BigDecimal,BigInteger类


一、Date类

Date类带边当前系统时间,用来显示时间

Date d = new Date();

Date d =new Date(long d);

示例:

package com.ffyc.javaapi.datedemo;
import java.util.Date;

public class DateDemo {
    public static void main(String[] args) {
        /*
        java.util.Date;
        new Date();对象 得到一个系统的当前时间
        getYear();上边有一个删除线,表示此方法是弃用的方法,不建议使用,有新的方法代替,但是也是可以调用的
         */
        Date date =new Date();
        System.out.println();
        System.out.println(date.getYear()+1900);
        System.out.println(date.getMonth()+1);//月份从0开始
        System.out.println(date.getDate());//这个月的第几天
        System.out.println(date.getDay());//星期从0开始,星期天
        System.out.println(date.getHours());
        System.out.println(date.getMinutes());
        System.out.println(date.getSeconds());
        System.out.println(date.getTime());//1694309717613 获取的是从1970.1.1 00.00 到程序运行那一刻的时间差 毫秒值
        //测试程序运行的时间 程序运行前 new Date()getTime()程序运行后new Date().getTime()

        System.out.println(date);

        Date d =new Date(1694309717613L);

    }
}

注:国外一般以星期天为一个星期的开始,而getDay()方法中,是以0开始的,所以需要注意使用后的结      果.

二、Calendar类

Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建 对象的过程对程序员来说是透明的,只需要使用getInstance方法创建 即可。

Calendar c1 = Calendar.getInstance();

                c1.get(Calendar. YEAR);

import java.util.Calendar;

public class CalendarDemo {
    public static void main(String[] args) {
        /*
        Calendar 日历类 抽象类 用来定义日历功能的,具体的实现可以交给子类实现
        GregorianCalendar 蔡里高利历(公历) 是Calendar抽象类得具体子类
         */

        //Calendar c=new GregorianCalendar();
        Calendar c=Calendar.getInstance();
        System.out.println(c.get(Calendar.YEAR));//get(具体的日历属性
        System.out.println(c.get(Calendar.MONTH)+1);//月
        System.out.println(c.get(Calendar.DAY_OF_MONTH));//日
        System.out.println(c.get(Calendar.DAY_OF_WEEK));//一周中的第几天
        System.out.println(c.get(Calendar.DAY_OF_YEAR));//一年中的第几天
        System.out.println(c.get(Calendar.WEEK_OF_MONTH));
        System.out.println(c.get(Calendar.WEEK_OF_YEAR));
        System.out.println(c.get(Calendar.HOUR_OF_DAY));
        System.out.println(c.get(Calendar.MINUTE));
        System.out.println(c.get(Calendar.SECOND));
        //c.set(2022,9,10); 设置系统时间
        //System.out.println(c.get(Calendar.Year));//get(具体的日历属性)

        System.out.println(c.getTimeInMillis());//获取的是从1970.1.1 00.00 到程序运行那一刻的时间差
    }
}

注意Calendar中定义系统时间的方式

三、SimpleDateFormat类

作用为日期的格式化

构造方法 SimpleDateFormat(格式); // yyyy-MM-dd

日期转字符串 Date now=new Date(); myFmt.format(now);

字符串转日期 myFmt.parse(“2018-02-10”); 字符串日期格式与 指定格式必须一致

例如:String s = “2018-03-15”;

new SimpleDateFormat(“yyyy-MM-dd”)

类型转换:


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormatDemo {
    public static void main(String[] args) throws ParseException {
        Date date = new Date();
        String s = "张三";
        //System.out.printIn(s+""+date.getYear()+1900+"年"+date.getMonth()+1);

        /*
        把Date类型转换为字符串
        */
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String datestr = sdf.format(date);
        System.out.println(datestr);

        /*
        把字符串日期 转为 Date 类型
         */
        String str="2002-3-2";
        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd");
        Date d=sdf1.parse(str);
        System.out.println(d);
    }
}

四、BigDecimal类

作用:在计算精密类型的数据时,double或者浮点数都会出现浮点数丢失的情况,所以需要用到BigDecimal类来解决此问题.


import java.math.BigDecimal;

public class BigDecimalDemo {

    public static void main(String[] args) {
        BigDecimal a=new BigDecimal("0.1");
        BigDecimal b=new BigDecimal("0.2");
        BigDecimal c=a.add(b);
        System.out.println(c);

        BigDecimal a1 = new BigDecimal("10");
        BigDecimal b1 = new BigDecimal("3");
        BigDecimal c1 = a1.divide(b1, 2, BigDecimal.ROUND_FLOOR);
        System.out.println(c1);
    }
}

五、BigInteger类

作用:用来处理一些数值较大的,超过了int甚至是long类型最大值的数字的运算


import java.math.BigInteger;

public class BigIntegerDemo {

    public static void main(String[] args) {
        BigInteger a=new BigInteger("111111111111111111111111111111");
        BigInteger b=new BigInteger("888888888888888888888888888889");
        BigInteger c=a.add(b);
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }

}


总结

1.在需要调用时间的代码中,注意三种类的使用方法,以及字符串和Date类型相互转换以解决问题

2.在处理需要精确小数点后的运算时,可以使用BigDecimal

3.在处理较大数的运算时,不要忘记还有BigInteger类可以使用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘伊珂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值