阅读更多
java.util包学习笔记
在这个包中,Java提供日期(Date)类,日历(Calendar)类来产生和获取日期和时间,提供随机数(Random)类来产生各种类型的随机数。
1,日期类有两种常见的构造方法
(1)public Date();该构造方法创建的日期类对象的日期时间被设置成创建时刻相对应的时间;
通过getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
通过getYear()返回一个值,此值是从包含或开始于此 Date 对象表示的瞬间的年份减去 1900 的结果(用本地时区进行解释)。
通过getMonth()返回表示月份的数字,该月份包含或开始于此 Date 对象所表示的瞬间。返回的值在 0 和 11 之间,值 0 表示 1 月。
通过getDate()返回此 Date 对象表示的月份中的某一天。返回的值在 1 和 31 之间,表示包含或开始于此 Date 对象表示的时间的月份中的某一天。
例如:Date d1 = new Date();
int year = d1.getYear();
int month = d1.getMonth();
int date = d1.getDate();
System.out.println((year+1900)+"年"+(month+1)+"月"+date+"日");
(2)public Date(long date);该构造方法创建的日期类对象的日期时间由传入的long型参数所决定;
java.lang.System类中currentTimeMillis()返回以毫秒为单位的当前系统时间,该方法为静态方法,直接由类名进行调用;
例如:long t = System.currentTimeMillis();
System.out.println("t:"+t);
Date d2 = new Date(t);
long time2 = d2.getTime();
System.out.println(time2);
2,日历类是一个抽象类。
(1)Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象,使用默认时区和语言环境获得一个日历。
(2)日历对象通过调用set方法来为静态变量赋值,通过get方法获取静态变量的值;(具体参阅API文档)
(3)若没有调用set方法,则通过get方法获取的静态变量的值则为创建该对象时的默认值。
例如:Calendar calendar =Calendar.getInstance();
calendar.set(Calendar.YEAR,1949);
calendar.set(Calendar.WEEK_OF_YEAR,10);
calendar.set(Calendar.DAY_OF_WEEK, 1);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int date = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(year+" "+month+" "+date)
3,获取当前时间,获取某个时间的某个格式,
(1)获取当前时间直接用Date()或者使用System.currentTimeMillis()函数;
(2)获取时间格式用到时间格式化类SimpleDateFormat,首先创建一个格式化的实例,并指定其时间模
式与区域,然后去格式化原始时间;(具体各种格式设置参见API文档)
例如: long t = System.currentTimeMillis();
System.out.println("t:"+t);
Date d2 = new Date(t);
long time2 = d2.getTime();
System.out.println(time2);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(d2);
System.out.println(str);
long aa =0L;
Date d3 = new Date(aa);
String str2 = sdf.format(d3);
System.out.println(str2);
结果如下: 2015-10-21 19:56:11
1970-01-01 08:00:00
4,随机类来产生各种类型的随机数;
具体代码事例如下:
// 创建随机数对象
Random rd = new Random();
for (int i = 0; i < 10; i++) {
// 从int的范围内随机一个数字
int t = rd.nextInt();
System.out.println(t);
}
for (int i = 0; i < 10; i++) {
// 从0到100之间取一个随机数
int t2 = rd.nextInt(100);
System.out.println(t2);
}
// 从-100到100之间取一个随机数
int t3 = rd.nextInt(100) - 100;
// 从0到100之间随机一个奇数
int t4;
do {
t4 = rd.nextInt(100);
} while (t4 % 2 == 0);
System.out.println(t4);
//从 "再来一包","谢谢惠顾","加1元换购一包","芙蓉王"
String[] strs = {"再来一包","谢谢惠顾","加1元换购一包","芙蓉王"};
int index = rd.nextInt(strs.length);
System.out.println(strs[index]);