当前位置: 代码迷 >> 综合 >> 常用类之BigDecimal,Date,Calendar,SimpleDateFormat和System
  详细解决方案

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

热度:37   发布时间:2023-12-15 05:08:47.0

六.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创建DateDate 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。

 

  相关解决方案