Date类
java.util包下的类
public class DateDemo {
public static void main(String[] args) {
/*
一个Date对象,表示某一刻的时间
*/
//long t = System.currentTimeMillis();//返回的是一个long类型,不能直观看出具体时间
//创建一个日期对象,里面包含了程序运行时的那一刻的时间,提供方法方便操作
Date date = new Date();
System.out.println(date);//输出系统执行时的时间信息
System.out.println(date.getTime());//与System中的方法一样返回long类型 日期对象
System.out.println(date.getYear()+1900);// 过期方法,有新方法代替
System.out.println(date.getMonth()+1);//+1,是因为从0开始
Date date1 = new Date(1639676401126L);
System.out.println(date1);//Fri Dec 17 01:40:01 CST 2021
System.out.println(date1.getHours());//1
System.out.println(date1.getMinutes());//40
System.out.println(date1.getSeconds());//1
}
}
Calendar类
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class CalendarDemo {
public static void main(String[] args) {
/*
Calendar 是一个抽象类,抽象类不能创建对象, 怎么表示一个时间?
Calendar.getInstance(); 创建的是一个Calendar子类对象,
GregorianCalendar 公历 是Calendar的一个子类
*/
//Calendar c = Calendar.getInstance();
Calendar c = new GregorianCalendar();//获得日历对象 实现是子类 (使用多态)
System.out.println(c);
int date = c.get(Calendar.DAY_OF_MONTH);//得到的是一个月中的第几天
System.out.println(date);
int dayofYear = c.get(Calendar.DAY_OF_YEAR);//一年中的第几天
System.out.println(dayofYear);
System.out.println(c.get(Calendar.WEEK_OF_YEAR));//一年中的第几个周
System.out.println(c.get(Calendar.WEEK_OF_MONTH));//一年中的第几个月
System.out.println(c.get(Calendar.DAY_OF_WEEK));//一周中的第几天,周日是0
Date d = c.getTime();//将日历对象有转换为日期对象
long t = c.getTimeInMillis();//将日历对象转换成long类型,目的是为了方便计算
}
}
SimpleDateFormat
SimpleDateFormat是java.text包下面的一个类,作用是将字符串日期装换为 Date对象 ,将Date对象装换为字符串。例如用户输入的生日是子符串形式,程序需要将其装换为子符串来存储。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo {
/*
抛出异常是因为当用户输入的字符串未按规定格
式输入,或者pattern中规定的格式有误
*/
public static void main(String[] args) throws ParseException {
//将字符串转换为日期格式时是需要规定输入字符格式的,并且输入字符串时需要遵守此格式
String str = "2021.11.26";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");//规定输入的格式
Date date = sdf.parse(str);//将字符串类型转换为Date对象
System.out.println(date);
Date date1 = new Date();//获取程序执行时间
System.out.println(date1);
SimpleDateFormat spdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS E");//规定输出的格式
String d=spdf.format(date1);//将日期对象转换为字符串对象
System.out.println(d);
}
/* 常用时间的格式符:
y 年 yyyy 2002
M 月 MM 08;12
d 天 dd 22;05
H 时 HH 06;23
m 分 mm 10;04
s 秒 ss 15;02
S 毫秒 SSS 001;152
E 星期 E 星期三
*/
}
BigInteger 大整数
是在java.math包下面的类 目的是用来存储更大的数(就是超出8字节的数)
import java.math.BigInteger;
public class BigIntegerDemo {
public static void main(String[] args) {
/*
BigInteger 大整数
整数中long中最大能保存9223372036854775807L再大时就超出了8字节
*/
System.out.println(Long.MAX_VALUE);
BigInteger b = new BigInteger("111111111111111111111111111111111");
BigInteger b1 = new BigInteger("22222222222222222222222222222222");
//大整数的相关运算
System.out.println(b.add(b1));//+
System.out.println(b.multiply(b1));//*
System.out.println(b.divide(b1));// /
}
}
BigDecimal 大浮点数
import java.math.BigDecimal;
public class BigDecimalDemo {
public static void main(String[] args) {
System.out.println(13-11.9);//1.0999999999999996
//小数在内存中存储的二进制代码是一个无限接近实际小数的值,不精确
BigDecimal b = new BigDecimal("12");
BigDecimal b1 = new BigDecimal("10.9");
BigDecimal b3 = b.subtract(b1);//返回的还是一个BigDecimal对象
System.out.println(b3);
BigDecimal b4 = new BigDecimal("10");
BigDecimal b5 = new BigDecimal("3");
//System.out.println(b4.divide(b5));//除不尽,将会报错
System.out.println(b4.divide(b5,3,BigDecimal.ROUND_CEILING));
/*
在除不尽的时候必须要用此方法,否则汇报错
3 表是 保留三位小数
BigDecimal.ROUND_CEILING 舍入的模式
*/
}