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

六.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是以与语言环境有关的方式来格式化和解析日期的类。

常用时间模式字母: 

字母 日期或时间 示例
y 2019
M 年中月份 08
d 月中天数 10
H 1天中小时数(0-23) 22
m 分钟 16
s 59
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。

猜你喜欢

转载自blog.csdn.net/qwq1518346864/article/details/115412991