1、时间类
包: java.util.Date
常用的方法
public static void main(String [] args)i2
//创建时间对象
Date d = new Date( ;//d表示当前时间
d.getTime( )//获取d那个时间的时间戳
//时间戳―从1970-01-01 00:00:00到对应时间的毫秒数,long类型
//比较时间的大小(早晚)
Date d2 = new Date( );
d.before(d2);//d是否早于d2
d.after(d2) ;
d.eauals(d2 ):
2、SimpleDateFormat
作用于Date与字符串之间的转换
使用方式
//创建模式化器对象,指定格式
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH : mm: ss");
Date d = new Date( );
//将时间类型格式化成字符串
String a = sdf.format(d);
System.out.println(a) ;
String s = "2022-01-04 08:08:08"";
//将字符串转化成时间注意异常问题
Date d2 = sdf.parse(s ) ;
3、Math
包含了用于执行基本数学运算的属性和方法,Math类提供的方法都是static的常用方法:
//返回参数的绝对值
int a = -20;
int b = Math.abs(a) ;
//四舍五入,返回一个最接近的float->int 或double->long类型的值
float f = 1.6F;
int i = Math. round(f);
//获取随机数,结果为0到1之间的小数,包含0不包含110
double d = Math.random( );
// max,min获取较大或较小值
Math.max(4,6);
Math.min(4,6);
//还有其他数学方面的各种方法,比如平方根,正弦等等
4、BigDecimal
public static void main(String[] args ){
System.out.println(0.2+0.1);
system.out.println(0.3-0.1);
System.out.println(0.2*0.1);
system.out.println (0.3/0.1);
}
不论是float还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精度。
但是在项目中(特别是金融项目),涉及金额要十分精确,所以需要BigDecimal用来对超过16位有效位的数进行精确的运算
java.math.BigDecimal创建对象∶
new BigDecimal(5);
new BigDecimal(5.5);
new BigDecimal(5L);//不推荐
new BigDecimal("5.5""); //最推荐
常用方法:
BigDecimal a = new BigDecimal("2.3");
BigDecimal b = new BigDecimal( "4.3");
a.add(b); //加,返回结果,并不会一直累加,需要创建一个对象来接收
b.subtract(a); //减
a.multiply(b);//乘
b.divide(a);//除
//注意运算完原来参与运算的值不改,要接收运算的返回值得到结果
//转成字符串返回
a.toString( )
//转成double返回
a.doubleValue( )
//转成float返回
a.floatValue( )
//转成int返回a.intvalue( )//转成long返回a.longvalue( )
divide最常使用的方法为
divide(BigDecimal divisor,int scale, int roundingMode)或
divide(BigDecimal diEisor,int scale,RoundingMode roundingMode)
divisor:除数
scale:保留小数位
roundinglMode:舍入模式
setScale方法格式化小数点位数
BigDecimal b = new BigDecimal(""2.22"");
setScale(1);//默认ROUND_INNECESSARY不需要舍入模式
setScale(1,BigDecimal.ROUND_UP);//指定舍入模式保留1位小数