BigDecimal ,Date,Calendar,SimpledateFormat,System类

1.6 BigDecimal

思考:以下程序输出结果是多少?

Public class TestBigDecimal{
  Public static void main(String[] args){
     double d1=1.0;
     double d2=0.9;
    System.out.println(d1-d2);//0.09999999999999998
  }
}
  1. 位置:java.math包中。

  2. 作用:精确计算浮点数

  3. 创建方式: BigDecimal bd=new BigDecimal(“1.0”);

    **传参一定要字符串 **

BigDecimal bd1=new BigDecimal("1.0");
BigDecimal bd2=new BigDecimal("0.9");
//减法
BigDecimal r1=bd1.substract(bd2);
//加法
BigDecimal r2=bd1.add(bd2);
//乘法
BigDecimal r3=bd1.mutiply(bd2);
//除法,保留3位小数,按照四舍五入的方法
BigDecimal r4=new BigDecimal("4.0").divide(new BigDecimal("3.0"),3,RoundingMode.HALF_UP)
 

1.7 Date

  1. Date表示特定的瞬间,精确到毫秒。Date类中的大部分方法都已经被Calendar类中的方法取代了
  2. 时间单位: 1秒=1000毫秒 ,1毫秒=1000微妙 ,1微妙=1000纳秒
public static void main(String[] args){
  //1创建Date对象
  //今天
  Date date1=new Date();
  System.out.println(date1.toString());
  System.out.println(date1.toLocaleString());
  //昨天
  Date date=new Date(date1.getTime()-60*60*24*1000);
  System.out.println(date2.toLocaleString());
  //2方法after before
  boolean b1=Date1.after(date2);
  System.out.println(b1);
}

1.8 Calendar

  1. Calendar 提供了获取或设置各种日历字段的方法。
  2. 构造方法
    protected Calendar():由于修饰符是protected,所以无法直接创建对象
  3. 其他方法
方法名                                           说明
static Calendar getlnstance()               使用默认时区和区域获取日历
void set(int year,int month,int date,
         int hourofday,int minute,int second)  设置日历的年、月,日时、分、秒
int get(int field)                           返回给定日历字段的值。比如年,月,日
void setTime(Date date)                      用给定的Date设置此日历的时间。Date-Calendar
Date getTime()                               返回一个Date表示此日历的时间
void add(int field,int amount)               按照日历的规则,给指定字段添加或减少时间量
long getTimelnMillies()                      毫秒为单位返回该日离的是兼职
    public static void main(String[] args) {
        //1、创建Calendar对象
        Calendar calendar = Calendar.getInstance();//通过静态方法
        System.out.println(calendar.getTime());//Tue Apr 26 22:03:38 CST 2022
        System.out.println(calendar.getTime().toLocaleString());//2022-4-26 22:04:14

        //2、获取时间信息
        int i = calendar.get(calendar.YEAR);
        int month = calendar.get(calendar.MONTH);//月是0-11范围的。从0开始
        int date = calendar.get(calendar.DATE);
        int hour = calendar.get(calendar.HOUR);//hour12小时。hour_of_day 为24
        System.out.println(i);
        System.out.println(month);
        System.out.println(date);
        System.out.println(hour);
        //3、修改时间
        Calendar calendar1 = Calendar.getInstance();
        calendar1.set(Calendar.DAY_OF_MONTH,5);
        System.out.println(calendar1.getTime().toLocaleString());
        //4、add时间
        calendar1.add(Calendar.MONTH,1);
        System.out.println(calendar1.getTime().toLocaleString());
        //5、补充方法
        int actualMaximum = calendar1.getActualMaximum(Calendar.HOUR_OF_DAY);//获取当天最大有几小时。好东西
        int actualMinimum = calendar.getActualMinimum(Calendar.HOUR_OF_DAY);//获得当天最小的小时
        System.out.println(actualMaximum);
        System.out.println(actualMinimum);
    }

1.9 SimpleDateFormat

  1. SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类
  2. 进行格式化(日期—> 文本)、解析(文本—>日期)
    public static void main(String[] args) throws Exception {
        //1 创建实例
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        //2 创建Date
        //可以直接Date date = new Date();
        Calendar instance = Calendar.getInstance();
        instance.add(Calendar.MONTH, 10);
        Date time = instance.getTime();
        //3 格式化实例
        String format = simpleDateFormat.format(time);
        System.out.println(format);
        //4 解析(把字符串转成日期)
        Date parse = null;
        parse = simpleDateFormat.parse("1992-09-21");
        System.out.println(parse);//Mon Sep 21 00:00:00 CST 1992
    }

2.0 System类

  1. System系统类,主要用于获取系统的属性数据和其他操作,构造方法私有的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-17DaIxRK-1650987610827)(…/…/…/…/Application Support/typora-user-images/image-20220426230452257.png)]

    public static void main(String[] args) {
        //1 arraycopy:数组的复制
        //src:原数组
        //srcPos:从那个位置开始复制0
        //dest:目标数组
        //destPos:目标数组的位置
        //length:复制的长度
        int[] array = {10, 2, 3, 4, 2, 1, 5, 25, 3, 4, 2, 1, 0};
        int[] dest = new int[8];
//        System.arraycopy(arr,srcPos,dest,destPos,length);
        System.arraycopy(array,0,dest,0,8);
        for (int x : dest){
            System.out.println(x);
        }
        //2 获取毫秒
        long l = System.currentTimeMillis();
        //3 退出 jvm
        System.exit(0);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值