Date类和Calendar类
使用Date类代表当前系统时间
Date d = new Date();
Date d = new Date(long d);
Date date = new Date();// 创建一个日期对象,里面包含程序运行时那一刻的时间
System.out.println(date.getYear()+1900);//获得年 过期方法 可以使用 只是官方不推荐
System.out.println(date.getMonth()+1); // 0开始
System.out.println(date.getDate()); //月中的第几天
System.out.println(date.getDay()); //周中的第0天 从0开始 0-星期天
System.out.println(date.getHours());
System.out.println(date.getMinutes());
System.out.println(date.getSeconds());
System.out.println(date.getTime());
Date date = new Date(1621735853158L);
date.setMonth(7);
System.out.println(date.getMonth()+1);
System.out.println(date.getHours());
System.out.println(date.getMinutes());
System.out.println(date.getSeconds());
System.out.println(date); //Sun May 23 10:10:53 CST 2021
System.out.println(date.toLocaleString()); //根据本地区习惯输出一个字符串格式的时间
Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建
对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可
Calendar c1 = Calendar.getInstance();
//Calendar是抽象类 不能创建对象
//Calendar c = Calendar.getInstance();//返回的是子类对象
Calendar c = new GregorianCalendar();//直接new子类对象
//c.set(2002, 5, 10);
//System.out.println(c.getTime());
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.MONTH)+1);
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println(c.get(Calendar.DAY_OF_WEEK));
System.out.println(c.get(Calendar.DAY_OF_YEAR));
SimpleDateFormat类
SimpleDateFormat是日期格式化类
Date的输出格式
Date d = new Date();
System.out.println(d);//d.toString() Sun May 23 11:47:28 CST 2021
System.out.println(d.toLocaleString());//2021-5-26 19:55:56
SimpleDateFormat的输出格式
//日期格式化--把java中的对象型(new Date() Calendar ) 转为指定格式的字符
Date a = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss SSS E");
String str = simpleDateFormat.format(a);
System.out.println(str);
//日期格式化--把字符串转为日期对象
String birthday = "1999-10-10";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
Date d = simpleDateFormat.parse(birthday);
System.out.println(d.getYear()+1900);
System.out.println(d.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
BigInteger
BigInteger类型的数字范围较Integer,Long类型的数字范围要大得多,它支持任意精度的整数,也就是
说在运算中 BigInteger 类型可以准确地表示任何大小的整数值而不会丢失任何信息
/*
BigInteger 大整数 可以表示任意的整数
基本运算方法
加减乘除
add(),subtract(),multiply(),divide()
*/
BigInteger a = new BigInteger("1111111111111111111111111111111112222222222222222222222222211111111111111111");
BigInteger b = new BigInteger("111111111111111111111111111111111112222222222222222222222222111111111111119");
BigInteger c = a.add(b);
System.out.println(a);
System.out.println(b);
System.out.println(c);
BigDecimal
在计算机中不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度
/*double d = 10.5;
System.out.println(10.5-10.4);//10.5-10.4<0.1*/
BigDecimal a = new BigDecimal("1222222222222222222233333333333333333333333333333333222222222222222.5");
BigDecimal b = new BigDecimal("12.4");
System.out.println(a.subtract(b));