1、Random类

(1)Random类用于生成随机数。每当需要以任意或非系统方式生成数字时,可使用此类;

(2)Math类的random()方法也可以产生随机数,其实Math类的random()方法底层就是使用Random类实现的;

(3)Random类的构造方法有两种重载方式;

        构造方法 说明

                Random() 创建一个新的随机数生成器

                Random(long seed) 使用单个long种子创建一个新的随机数生成器
(4)Random类中定义了很多方法用于获取随机数,最常用的是nextInt()方法,它返回下一个伪随机数,返回值类型是整数类型。返回下一个伪随机数的语法格式如下:

        int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int值。

        int nextInt(int n):返回一个伪随机数,它是取自此随机数生成器序列的、在0(包括)和指定值n(不包括n)之间均匀分布的int值。

(5)Random类还定义了得到长整型、boolean型、浮点型等伪随机数的方法。

(6)如果用同样一个种子值来初始化两个Random对象,然后用每个对象调用相同的方法,那么得到的随机数也是相同的。

关于Random类的相关代码如下:

import java.util.Random;

public class RandomTest {
    public static void main(String[] args) {
        //创建Random类对象
        Random random = new Random();
        //调用不同的方法,获取不同类型的随机数
        boolean result1  =random.nextBoolean();
        System.out.println(result1);
        int result2 =random.nextInt();
        System.out.println(result2);
        //利用for循环,获取100个随机数
        for(int i =1;i<=100;i++){
            //随机数的范围在10以内
            int result3 =random.nextInt(10);
            System.out.print(result3+" ");
        }
    }
}

 2、日期操作类

(1)java.util包也是Java内置的一个工具包,它包含了集合框架、日期和时间、随机数生成器等各种实用工具类;

(2)java.util包不会默认导入,如果要使用该包中的类,则必须在程序的开始部分进行手工导入;

(3)java.util包中提供的和日期相关的类有Date类、Calendar类和SimpleDateFormat类等。

        1)Date类对象用来表示日期和时间,该类提供了一系列操作日期和时间各组成部分的方法。Date类中使用最多的是获取系统当前的日期和时间。

        举例:Date date = new Date();这句代码是使用系统当前时间创建日期对象。

        2)Calendar类也是用老操作日期和时间的类,它可以看作是Date类的一个增强版。Calendar类提供了一组方法,允许把一个以毫秒为单位的时间转换成年、月、日、小时、分、秒。

可以把Calendar类当做是万年历,默认显示的是当前时间,当然也可以查看其他时间。

        Calendar类是抽象类,可以通过静态方法getInstance()获得Calendar类的对象,其实这个获得的对象是它的子类的对象。

        Calendar类提供一些方法和静态字段来操作日历,例如:

        int get(int field):返回给定日历字段的值;其中YEAR:指示年;MONTH:指示月;DAY_OF_MONTH:指示一个月中的某天;DAY_OF_WEEK:指示一个星期中的某天。

        3)DateFormat类用来格式化日期和时间,它在java.text包下,是一个抽象类,提供了多种格式化和解析时间的方法。

        格式化是将日期转换成文本,解析是将文本转换成日期格式。使用比较多的是它的子类SimpleDateFormat类。

        SimpleDateFormat类是一个以语言环境有关的方式格式化和解析日期的具体类,如“yyyy-MM-dd HH:mm:ss”就是指定的一种日期和时间格式。

(4)在JDK 1.1之间,Date类允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的API不易于实现国际化。从JDK 1.1开始,使用Calendar类实现日趋和时间字段之间的转化,使用DataFormat类来格式化和解析日期字符串。

Date类的相关代码如下:

import java.util.Date;

public class DateTest {
    public static void main(String[] args) {
        //创建Date对象
        Date date = new Date();
        System.out.println("此时此刻是:"+date);
        //分别获取年 月 日 时 分 秒
       int year = date.getYear();
       int month = date.getMonth();
       int days = date.getDate();
       int hours = date.getHours();
       int minutes = date.getMinutes();
       int seconds =date.getSeconds();
       //获取星期,返回值 (0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday)
       int day =date.getDay();
       String[] xingQi = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

        System.out.println(year+1900+"年"+(month+1)+"月"+days+"日"+" "+hours+":"+minutes+":"+seconds+" "+xingQi[day]);



    }
}

Calendar类的相关代码如下:

import java.util.Calendar;
import java.util.Date;

public class CalendarTest {
    public static void main(String[] args) {
        //static Calendar getInstance()使用默认时区和语言环境获得一个日历。
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar);
        //获取年 月 日 时 分 秒
        // int get(int field) 返回给定日历字段的值。
        int year = calendar.get(Calendar.YEAR);
        System.out.println(year);//年
        int month = calendar.get(Calendar.MONTH);
        System.out.println(month+1);//月
        int date = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(date);//日
        int hour=calendar.get(Calendar.HOUR_OF_DAY);//时
        int minute = calendar.get(Calendar.MINUTE);//分
        int second =calendar.get(Calendar.SECOND);//秒
        System.out.println(hour+":"+minute+":"+second);
        //输出今天是这一年的第几天
        System.out.println("今天是这一年的第"+calendar.get(Calendar.DAY_OF_YEAR)+"天");

        System.out.println("-----------------------");
        //获取当前主机时间并输出
        Date date2  =calendar.getTime();
        System.out.println(date2);
    }
}