常用类之BigDecimal,Date,Calendar,SimpleDateFormat和System

本文详细介绍了Java中的BigDecimal类用于精确浮点数计算的方法,包括加、减、乘、除,并展示了如何进行除法运算时指定精度和舍入模式。此外,还探讨了Date和Calendar类在处理日期和时间上的应用,以及SimpleDateFormat类在日期格式化和解析中的作用。通过案例展示了如何使用这些类进行实际操作。
摘要由CSDN通过智能技术生成

六.BigDecimal

位置:java.math包中

作用:精确计算浮点数

创建方式:BigDecimal bd=new BigDecimal(“1.0”)。

常用方法:

方法名描述
BigDecimal add(BigDecimal bd)
BigDecimal subtract(BigDecimal bd)
BigDecimal multiply(BigDecimal bd)
BigDecimal divide(BigDecimal bd)

 

 

 

 

 

 

  • 除法:divide(BigDecimal bd,int scal,RoundingMode mode)。

  • 参数scale :指定精确到小数点后几位。

  • 参数mode :

    • 指定小数部分的取舍模式,通常采用四舍五入的模式。

    • 取值为BigDecimal.ROUND_HALF_UP。

案例: 

public class Demo7 {
	public static void main(String[] args) {
		double d1=1.0;
		double d2=0.9;
		System.out.println(d1-d2);
		
		//面试题
		double result=(1.4-0.5)/0.9;
		System.out.println(result);
		//BigDecimal,大的浮点数精确计算
		BigDecimal bd1=new BigDecimal("1.0");
		BigDecimal bd2=new BigDecimal("0.9");
		//减法
		BigDecimal r1=bd1.subtract(bd2);
		System.out.println(r1);
		
		//加法
		BigDecimal r2=bd1.add(bd2);
		System.out.println(r2);
		
		//乘法
		BigDecimal r3=bd1.multiply(bd2);
		System.out.println(r3);
		
		//除法
		BigDecimal r4=new BigDecimal("1.4")
			.subtract(new BigDecimal("0.5"))
			.divide(new BigDecimal("0.9"));
		System.out.println(r4);
		
		BigDecimal r5=new BigDecimal("20").divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);
		System.out.println(r5);
		
	}
}

七.Date

  • Date表示特定的瞬间,精确到毫秒。

  • Date类中的大部分方法都已经被Calendar类中的方法所取代。

  • 时间单位

    • 1秒=1000毫秒

    • 1毫秒=1000微秒

    • 1微秒=1000纳秒

案例:

public class Test {

	
	public static void main(String[] args) {
		//日期类型
		Date d =new Date();
		
		System.out.println(d);
		//过时方法
		System.out.println(d.toLocaleString());
		System.out.println(d.getYear()+1900);
		
		//在电脑里面的毫秒
		System.out.println(d.getTime());
	
		
		System.out.println("=============");
		
		
		Calendar c=Calendar.getInstance();
		System.out.println(c);
//		calendar.set(year, month, date);
		
		System.out.println(c.get(Calendar.YEAR));
	}
}

八.Calendar

  • Calendar提供了获取或设置各种日历字段的方法。

  • protected Calendar() 构造方法为protected修饰,无法直接创建该对象。

案例:

//7、使用Calender输出日期。
public class Text {
	public static void main(String[] args) {
		
		Calendar c=Calendar.getInstance();
//		System.out.println(c);	
		int year =c.get(Calendar.YEAR);
		
		int month=c.get(Calendar.MONTH);
		
		int day=c.get(Calendar.DAY_OF_MONTH);
		
		int hour=c.get(Calendar.HOUR_OF_DAY);
		
		int minute=c.get(Calendar.MINUTE);
		
		int  second=c.get(Calendar.SECOND);
		
		System.out.println(year+"年"+(month+1)+"月"+day+"日"+hour+"小时"+minute+"分"+second+"秒");

        //2021年4月4日19小时54分58秒
	}
}

九.SimpleDateFormat*

SimpleDateFormat是以与语言环境有关的方式来格式化和解析日期的类。

常用时间模式字母: 

字母日期或时间示例
y2019
M年中月份08
d月中天数10
H1天中小时数(0-23)22
m分钟16
s59
S毫秒367

 

 

 

 

 

 

 

 

 

案例:

public class TestSimpleDateFormat {
	public static void main(String[] args) throws Exception{
		//1创建SimpleDateFormat对象  y 年 M 月
		//SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH-mm-ss");
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
		//2创建Date
		Date date=new Date();
		//格式化date(把日期转成字符串)
		String str=sdf.format(date);
		System.out.println(str);
		//解析 (把字符串转成日期)
		Date date2=sdf.parse("1990/05/01");
		System.out.println(date2);

        //2021/04/04
        //Tue May 01 00:00:00 CDT 1990
	}
}

十.System

System系统类,主要用于获取系统的属性数据和其他操作。

方法名说明
static void arraycopy(...)复制数组
static long currentTimeMillis()获取当前系统时间,返回的是毫秒值
static void gc();建议JVM赶快启动垃圾回收器回收垃圾
static void exit(int status)退出jvm,如果参数是0表示正常退出jvm,非0表示异常退出jvm。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值