常用类math、Date、calendar
Math
构造函数私有化——禁止其它类中创建它的对象
所有方法静态——可以直接使用类名访问
求次方、四舍五入、向上向下取整、获得π,弧度值转变为角度值,求绝对值,两数之间最大最小值等
Date
方法名 | 用法 |
---|---|
getTime()方法 | 返回格林威治时间到对象指定的时间 |
compareTo(另一个日期) | 返回-1 0 或1,分别表示对象小于 等于 大于参数 |
after(另一个日期) | 返回是否在参数日期之后 |
before(另一个日期) | 返回是否在参数日期之前 |
System.currentTimeMillis(); | 返回运行这句代码的当前时间 非date类的方法 |
SimpleDateFormat
日期格式化
日期对象转换为指定格式文本
创建SimpleDateFormat对象并指定格式;
给出日期对象
调用SimpleDateFormat对象的format方法,将日期对象格式化,返回String字符串
SimpleDateFormat sdm=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1=new Date();
System.out.println(sdm.format(d1));//2019-10-31 16:19:53
SimpleDateFormat sdm2=new SimpleDateFormat("D");
System.out.println(sdm.format(d1));//304,表示10月31日是2019年的第304天
注意大小写!比如D表示年中的天数,d表示月中的天数
文本解析为日期对象
创建SimpleDateFormat对象并指定格式;
给出字符串形式的日期
调用SimpleDateFormat对象的parse方法,将字符串对象按格式解析成日期对象
SimpleDateFormat sdm=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time ="1999-12-11 11:23:34";
Date d=sdm.parse(time);
System.out.println(d);//Sat Dec 11 11:23:34 CST 1999
Calendar
是一个抽象类
getInstance()方法
获取对象,对象默认值为当前日期和时间;(通过这个方法,创建了子类对象并多态成为calendar对象的)
set()方法
- 重载1 set(int时,int分,int秒)
- 重载2 set(int年,int月,int日,int时,int分,int秒)
- 重载3 set(int时间域,int值) 时间域:年=1.月=2…都是calendar类的静态常量,可以直接calendar.MONTH,即set(calendar.MONTH,int值)
get方法
get(int时间域)获取对象表示的时间的特定时间域值
add方法
add(int时间域,int值) 向指定时间域增加值(减少即 加负数),如对象原时间为2019-10-31 17:52:00 ;add(calendar.YEAR,20),结果为2039-10-31 17:52:00 ;
getTimeInMillis方法
获取对象时间的毫秒值
getTime()方法
返回calender对象对应的Date日期对象
Random 伪随机
Scanner文本扫描器
nextInt()方法
nextInt(int 输入的进制数):参数表示将 输入的文本 看做 参数指定的进制数 ,然后返回10进制整数
如
int num = new scanner.nextInt(2);
//输入100
System.out.println(num);//输出4
不存在自动类型转换,如上例中若输入 A 喂等,会发生 InputMismathException
next()方法
输入的任何字符都会被视为字符串,然后返回字符串对象
空格会被视为结束(在开头的空格除外)
nextLine()方法
scanner发生异常后无法重新接收输入问题
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Random r1=new Random();
int n=r1.nextInt();
System.out.println("来猜大小");
for(;;){
try {
System.out.println("请猜");
int m=sc.nextInt();
if (n==m) {
System.out.println("对了");
}else {
System.out.println("错了重猜");
}
} catch (Exception e) {//当输入类型不匹配,如用nextInt接收到了字符串时
System.out.println("输入有误请重新输入");
// sc=new Scanner(System.in);
//因为scanner对象在堆内存中已经把异常记录下来了,即便捕获了(输出“输入有误请重新输入”),也会在走过(“请猜”)时不断再次被捕获(再走到“输入有误请重新输入”),进入死循环,无法正常执行next等方法。故每次发生异常,需要重新创建scanner对象。
}
}
}