Java学习(十二)

日期相关类

Date类

Date类表示特定的瞬间,精确到毫秒

方法:

  • boolean after 测试此日期是否在指定日期之后
  • boolean before 测试此日期是否在指定日期之前
  • long getTime 返回自1970/1/1 00:00:00 GMT以来的毫秒数
  • void setTime 设置此Date对象,以表示1970/1/1 00:00:00 GMT以后time毫秒的时间点

Dateformat抽象类与SimpleDateFormat类

DateFormat类是抽象类,不能实例化,但它提供了大量的静态方法返回一个具体的子类,让我们可以用不同的方法格式化日期时间

DateFormat类的getDateInstance方法返回一个将日期按照默认地区或者特定地区的方式格式化DateFormat对象。DateFormat的常量和getTimeInstance()方法的格式化风格的常量以及地区Locale对象的常量

    Date date=new Date();
    //DateFormat df=DateFormat.getDateInstance();//默认时间格式
    //DateFormat df=DateFormat.getDateInstanc(DateFormat.Full,Locale.CHINA);//中国格式
    DateFormat df=DateFormat.getTimeInstance(DateFormat.Full,Locale.CHINA);
    String time=df.forma(date);

SimpleDateFormat类可以自定义格式输出时间日期,创建时需要传人一个日期和时间的格式字符串作为格式化模板。

    SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH点mm分ss秒");

有时候我们需要把字符串解析成日期时间,通过DateFormat和SimpleDateFormat类的parse()方法,可以从字符串创建一个Date对象

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd);
String time="2016-1-1";
Date date=sdf.parse(time);

Calendar抽象类和GregorianCalendar类

设置或获取日期数据的特定部分,Calendar类是一个抽象类,他的主要方法:

  • add()实现在某个日期上的增加若干天、年、月、小时等后的新日期
  • get()得到日期对象中的年、月、日、时、分、秒等
  • set()修改日期对象中的年、月、日、时、分、秒等
  • getInstance() 返回一个Calendar类型的对象实例

因为Calendar类是一个抽象类,可以通过他唯一个具体的子类GregorianCalendar类来实例Calendar cal=new GregorianCalendar()

    GregorianCalendar day=new GregorianCalendar();
    GregorianCalendar day=new GregorianCalendar(2016,2,1);//在Java中因为第一个月食0,所以2代表的是3月
    GregorianCalendar day=new GregorianCalendar(2016,Calendar.March,1);//使用Calendar类中的常量

数学运算相关类

Math类

数学工具类,常用的数学常数和数学方法都在该内的内部,无论常数和方法都是static类型,可以直接Math.方法名进行调用。

随机数

  • 通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字,可以把这个当做随机数
  • 通过Math类的静态方法random()返回一个0到1之间的double值,我们可以把它乘以一定的数,比如10,他就是10以内的随机数
  • 通过Random类来产生一个随机数

Random类更专业,功能更强大

    Random r=new Random();
    Random r1=new Random(10);

我们也可以调用该对象的不同方法,随机生成int、long、double、float、boolean类型等不同类型的随机数

    int r=new Random().nextInt();
    Random random=new Random(100L);//带种子的测试Random对象
    //Random random=new Random();
    //random.setSeed(100L);

包装类与自动装箱拆箱

基础数据类型对应的包装类

  • boolean--------Boolean
  • byte--------Byte
  • short--------Short
  • int--------Integer
  • long--------Long
  • char--------Character
  • float--------Float
  • double--------Double

所有的包装类都是final类型,不能创建他们的子类
包装类是不可变类。一旦创建了一个包装类的对象,那么它所包含的基本类型数据就不能改变

原文地址:https://www.cnblogs.com/yeruheqi/p/5475606.html