常用类math、Date、calendar

mac2024-05-20  31

常用类math、Date、calendar

MathDateSimpleDateFormat CalendargetInstance()方法set()方法get方法add方法getTimeInMillis方法getTime()方法 Random 伪随机Scanner文本扫描器nextInt()方法next()方法nextLine()方法scanner发生异常后无法重新接收输入问题

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.nextInt2); //输入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对象。 } } }
最新回复(0)