Data
时间类,包:java.util.Data
常用的方法
package day16;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class test1 {
public static void main(String[] args) {
//Date jdk自带的类
Date d = new Date();
//new Date()创建出来的是当前时间
System.out.println(d);
long l = d.getTime();
//返回long值
System.out.println(l);
//1970-01-01 00:00:00
Date d2 = new Date(1687854192987L);
System.out.println(d2);
//d时间在d2时间的后面
boolean b1 = d.after(d2);
System.out.println(b1);
//d时间在d2时间的前面
boolean b2 = d.before(d2);
System.out.println(b2);
//d时间与d2时间相等
boolean b3 = d.equals(d2);
System.out.println(b3);
//时间格式化器 指定格式化方式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String result = sdf.format(d2);
System.out.println(result);
String dder = "2023-04-12 09:00:00";
//sdf觉得有可能会解析不了,让程序员去手动的处理解析不了时怎么办
try {
Date d3 = sdf.parse(dder);
System.out.println(d3);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
SimpleDateformat
作用于Date与字符串之间的转换
使用方式如上
Math
包含了用于执行基本数学运算的属性和方法,Math类提供的方法是static的,直接调用。
常用方法
//Math java.util.Math 数学相关的工具
Math.random();//获取一个随机数【0,1)
//返回参数绝对值
int a=-20;
int w=Math.abs(a);
//四舍五入
float f = 1.7f;
int i = Math.round(f);
//max min 获取最大最小值
Math.max(1, 6);
Math.min(1, 8);
BigDecimal
不论是float还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精度。
但是在项目中(特别是金融项目),涉及金额要十分精确,所以Bigdecimal用来对超过16位有效位的数进行精确的运算
java.math.BigDecimal
创建对象:
new BigDecimal(5);
new BigDecimal(5.5);
new BigDecimal(5L);//不推荐
new BigDecimal("5.5");//最推荐
常用方法:
BigDecimal b1=new BigDecimal("5.5");
BigDecimal b2=new BigDecimal("2.2");
//b1+b2 不对两个对象无法直接相加
BigDecimal b3=b1.add(b2); //加
BigDecimal b4=b1.subtract(b2);//减
BigDecimal b5=b1.multiply(b2);//乘
BigDecimal b6=b1.divide(b2,2,4);//除
System.out.println(b3);
System.out.println(b4);
divide除法需要特殊注意除不尽的情况:
divide最常用的方法为
divide(BigDecimal divisor,int scale,int roundingMode)
或
divide(BigDecimal divisor,int scale,RoundingMode roundingMode)
divisor:除数
scale:保留小位数
roundingMode:舍入模式
final值 | BigDecimal类静态常量 | RoundMode枚举类 | 模式含义 |
0 | ROUND_UP | 直接仅进位 | |
1 | ROUND_DOWN | 直接省略多余小数 | |
2 | ROUND_CEILING | 向正无穷方向舍入 | |
3 | ROUND_FLOOR | 向负无穷方向传入 | |
4 | ROUND_HALF_UP | 四舍五入,5上 | |
5 | ROUND_HALF_DOWN | 四舍五入,5下 | |
6 | ROUND_HALF_EVEN | ||
7 | ROUND_UNNECESSARY | 不需要舍入模式 |