package Lesson_15; import java.text.SimpleDateFormat; import java.util.Date; /************************************************************** * 2013.3.9 * java.util包(上) * @author Gavin **************************************************************/ /****************************课堂内容***************************** * 1、util包是java内置的一个工具包,其内包含一系列常用的工具 * java.util包不会默认导入,必须在程序开始显式导入 * 运用一下类来进行java编程 * --->Date类 最多的用途是获取系统当前的时间 * --->SimpleDateFormat 日期格式化 * --->Calendar 日历类 * --->Random 随机 * 2、Date类常用构造方法 (Date类大多已过时,现在用的多的是Calendar类) * --->Date() 使用系统当前时间创建日期对象 * --->Date(long date) 使用自1970年1月1日以后的指定毫秒数创建日期对象 * --->Date(int year, int month, int date) 创建指定年、月、日的日期对象 * --->Date(int year, int month, int date,int hrs, int min, int sec) * 创建指定年、月、日、时、分、秒的日期对象 * 4、Date常用的方法 * --->boolean after(Date when) * 如果当前日期对象在when指定的日期对象之后,返回true,否则返回false * --->boolean before(Date when) * 如果当前日期对象在when指定的日期对象之前,返回true,否则返回false * --->void setTime(long time) * 设置日期对象,以表示自1970年1月1日起的指定毫秒数 * --->long getTime() * 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 * --->boolean equals(Object obj) * 如果两个日期对象完全相同,返回true,否则返回false * --->String toString() * 返回日期的格式化字符串,包括星期几 * 5、Calendar类,以后基本都会用Calendar类来操作日期和时间,Date类已经过时 * --->Calendar类是抽象类,无法实例化,要得到该类对象只能通过调用getInstance方法来获得; * --->Calendar对象提供为特定语言或日历样式实现日期格式化所需的所有时间字段 * 6、Calendar类常用的方法 * --->Calendar getInstance() 返回默认地区和时区的Calendar对象 * --->int get(int fields) 返回调用对象中fields指定部分的值 * --->void set(int fields, int value) 将value中指定的值设置到fields指定的部分 * --->void add(int fields, int amount) 将amount值添加到fields指定的时间或日期部分 * --->Date getTime() 返回与调用对象具有相同时间的Date对象 * --->Object clone() 返回调用对象的副本 * --->void clear() 清除当前对象中所有的时间组成部分 * --->boolean after(Object obj) 如果调用对象时间在obj之后,返回true * --->boolean before(Object obj) 如果调用对象时间在obj之前,返回true * --->boolean equals(Object obj) 判断调用对象与obj是否相等 * 7、Random类:Random类专门用来生成随机数 * --->Random() 直接创建一个Random对象 * --->Random(long seed) 使用seed作为随机种子创建一个随机数 * 8、Random类常用的方法 * --->int nextInt() 从随机数生成器返回下一个整型值 * --->long nextLong() 从随机数生成器返回下一个长整型值 * --->float nextFloat() 从随机数生成器返回0.0到1.0之间的下一个浮点值 * --->double nextDouble() 从随机数生成器返回0.0到1.0之间的下一个双精度值 *********************************************************************/ public class Day3_9_上 { public static void main(String[] args) { //java.util.* Date day=new Date(); System.out.println(day.toGMTString());//转换成格林威治标准时,横线表示该方法已经过时 System.out.println(day); System.out.println(day.toLocaleString()); System.out.println(); day=new Date(1000000); System.out.println(day.toGMTString());//转换成格林横线表示该方法已经过时 System.out.println(day); System.out.println(day.toLocaleString()); System.out.println(); day=new Date(43*365*24*60*60*1000l); System.out.println(day.toGMTString());//转换成格林横线表示该方法已经过时 System.out.println(day); System.out.println(day.toLocaleString()); //输出当前时间,格式如下:xxxx年xx月xx日 如2012年03月09日 Date day2=new Date(); int year=1900+day2.getYear();//getYear方法返回1900年到现在年份之间的年数 int month=day2.getMonth()+1;//从0开始,故要加1 int day_=day2.getDate(); System.out.println(year+"年"+month+"月"+day_+"日"); //麻烦,可以日期格式化 SimpleDateFormat类 SimpleDateFormat formate =new SimpleDateFormat("yyyy年MM月dd日 a");//格式化日期 System.out.println("当前日期:"+formate.format(day2)); SimpleDateFormat formate2=new SimpleDateFormat("MM/dd/yyyy a kk:mm:ss" );//格式化日期2 System.out.println(formate2.format(day2)); } }
package Lesson_15; import java.util.Calendar; public class CalendarDemo { public static void main(String[] args) { //日历类 Calendar calen=Calendar.getInstance();//得到日历对象 //Calendar是抽象类,不能直接实例化 int y=calen.get(Calendar.YEAR); int m=calen.get(Calendar.MONTH)+1;//注意month是从0开始的,故要加1 int d=calen.get(Calendar.DATE); System.out.println("当前年份为:"+y+" 当前月份为:"+m+" 当前日数为:"+d); System.out.println("今天是这个星期的第"+calen.get(Calendar.DAY_OF_WEEK)+"天"); //我想知道2014年5月20号是 星期几? calen.set(2014, 4,20);//设置时间,月份是从零开始的! System.out.println("2014年5月20日是星期"+(calen.get(Calendar.DAY_OF_WEEK)-1)); System.out.println(calen.getTime());//此时显示的时间是2014年5月20的时 //我想知道100天之后的时间 Calendar cale=Calendar.getInstance(); cale.add(Calendar.DATE,100); System.out.println(cale.getTime()); System.out.println(); //我想打印当前月份的日历 printCurrentCalendar(2013,3);//打印2013年3月份的日历 } public static void printCurrentCalendar(int year,int month){ //打印日历方法 Calendar cale=Calendar.getInstance(); cale.set(year, month-1,1); System.out.println("Sun Mon Tue Wen Sur Fri Sat"); cale.set(Calendar.DATE,1);//设置当前日历开始日期为1号(默认为当前日期) int n =cale.get(Calendar.DAY_OF_WEEK)-1;//1号前面空得天数 for(int i=1;i<=n;i++){ System.out.print(" ");//输出空出的天数(用空格代替) } int days=cale.getActualMaximum(Calendar.DATE);//获得当前月份的最大天数,即一个月所有天数 for(int i=1;i<=days;i++){ if((n+i)%7==0){ //带上前面的空格,模7为0就拐弯 if(i<10){ System.out.println(" "+i); //为了对齐,要在小于10的数前面加上一个空格 }else{ System.out.println(i); } }else{ if(i<10){ System.out.print(" "+i+" "); }else { System.out.print(i+" "); } } } } }
package Lesson_15; import java.util.Random; public class RandomDemo { public static void main(String[] args) { //创建一个Random类对象 Random ran=new Random(); //随机生成20个随机整数,并将其输出来 for(int i=0;i<20;i++){ int num=ran.nextInt(); System.out.println("第"+(i+1)+"个随机数是:"+num); } //随机生成20个[0,50)之间的随机整数 for(int i=0;i<20;i++){ int num=ran.nextInt(50); System.out.println("第"+(i+1)+"个随机数是:"+num); } //随机生成20个0.0到1.0的随机double类型的数 for(int i=0;i<20;i++){ double num=ran.nextDouble(); System.out.println("第"+(i+1)+"个随机数是:"+num); } } }