System类
1 package p1; 2 3 import java.util.Properties; 4 import java.util.Set; 5 6 public class SystemDemo { 7 8 private static final String LINE_SEPARATOR = System.getProperty("line.separator"); //设置换行 9 10 public static void main(String[] args) { 11 /* 12 * System:类中的方法和属性都是静态的。 13 * 常见方法: 14 * long currentTimeMills();获取当前时间的毫秒值。(返回当前时间与协调世界时间1970年1月1日午夜之间的时间差) 15 */ 16 // demo1(); 17 demo2(); 18 // demo3(); 19 20 } 21 22 public static void demo3() { 23 System.setProperty("age", "28"); 24 System.setProperty("name", "张三"); 25 26 27 System.out.println(System.getProperty("age")); 28 System.out.println(System.getProperty("name")); 29 30 System.out.println("hello"+LINE_SEPARATOR+"woorld"); 31 } 32 /* 33 * demo3运行结果: 34 * 28 35 张三 36 hello 37 woorld 38 39 */ 40 41 public static void demo2() { 42 /* 43 * Properties getProperties() 获取系统的属性信息,并存储到Properties集合中 44 * 45 * Properties集合中存储都是String类型的键和值 //所以定义Properties类型的变量时不必带泛型 46 * 最好使用它自己的存储和取出的方法来完成元素的操作 47 */ 48 Properties prop = System.getProperties(); 49 // System.out.println(prop); 50 51 Set<String> nameSet = prop.stringPropertyNames(); 52 53 for (String name : nameSet) 54 { 55 String value = prop.getProperty(name); 56 57 System.out.println(name+"::"+value); 58 } 59 } 60 61 public static void demo1() { 62 long l1 = System.currentTimeMillis(); 63 System.out.println(l1);//返回1473476846438 毫秒数 64 System.out.println(l1/1000/60/60/24); //返回 17054 天数 65 66 // code... 67 long l2 = System.currentTimeMillis(); 68 System.out.println(l2-l1); //返回的是code...代码执行所用时间 69 } 70 71 }
Runtime类
1 package p1; 2 3 import java.io.IOException; 4 5 public class RuntimeDemo { 6 7 public static void main(String[] args) throws IOException, InterruptedException { 8 /* 9 * 每一个Java程序都有一个Runtime类案例,使应用程序能够与其运行的环境相连,可以通过getRuntime方法获取当前运行时。 10 * 应用程序不能创建自己的Runtime类案例。 11 */ 12 13 /* 14 * Runtime:没有构造方法摘要,说明该类不可以创建对象 15 * 又发现还有非静态的方法,说明该类应该提供静态的返回该类对象的方法 16 * 而且只有一个,说明Runtime类使用了单列设计模式。 17 */ 18 19 Runtime r = Runtime.getRuntime(); 20 21 // Process p = r.exec("notepad.exe");//打开notep 22 Process p = r.exec("notepad.exe D:\1.txt");//打开notepad,在用notepad打开TXT 23 //r.exec("软件路径 文件路径"); 24 Thread.sleep(5000); 25 p.destroy();//杀掉进程 5s后notepad关闭 26 27 28 } 29 30 }
Math类
1 package p1; 2 3 import java.util.Random; 4 5 public class MathDemo { 6 7 public static void main(String[] args) { 8 /* 9 * Math:提供了操作数学运算的方法。都是静态的。 10 * 11 * 常用方法: 12 * ceil():返回大于参数的最小整数 13 * floor():返回小于参数的最大整数 14 * round():返回四舍五入的整数 15 * pow(a,b):a的b次方 16 * random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0 17 */ 18 19 // demo(); 20 RandomDemo(); 21 22 23 } 24 25 public static void RandomDemo() { 26 Random r = new Random(); 27 28 for (int i=0; i<10; i++) 29 { 30 double d = r.nextDouble();//与Math.random()方法类似 31 System.out.println(d); 32 /* 33 * 0.013546684829438105 34 0.08058717380462299 35 0.25156348709107823 36 0.8149201340850071 37 0.37986882841498293 38 0.23718135066250312 39 0.6348939629694422 40 0.9508777684076484 41 0.8231478486704749 42 0.4605800387044423 43 */ 44 } 45 46 for (int i=0; i<10; i++) 47 { 48 int d1 = r.nextInt(10); //随机返回0~10(不包含)间任意一个int值。 49 System.out.println(d1); 50 51 } 52 } 53 54 public static void demo() { 55 double d1 = Math.ceil(12.53); 56 double d2 = Math.floor(12.53); 57 double d3 = Math.round(12.13); 58 double d4 = Math.pow(10, 3); 59 60 System.out.println(d1); //13.0 61 System.out.println(d2); //12.0 62 System.out.println(d3);//12.0 63 System.out.println(d4);//1000.0 64 65 for (int i=0; i<10; i++) 66 { 67 double d = Math.random(); 68 System.out.println(d); 69 /* 70 * 0.3027275615429248 71 0.5238495879790577 72 0.987839818675654 73 0.6749156933585441 74 0.8474524363649824 75 0.412124228077851 76 0.009324944666969759 77 0.9136918707539762 78 0.41197917556520036 79 0.3277617281962496 80 */ 81 } 82 } 83 84 }
Date类
1 package p1; 2 3 import java.text.DateFormat; 4 import java.text.ParseException; 5 import java.text.SimpleDateFormat; 6 import java.util.Date; 7 8 public class DateDemo { 9 10 public static void main(String[] args) throws ParseException { 11 // method_demo1(); 12 // method_demo2(); 13 method_demo3(); 14 15 } 16 17 public static void method_demo3() throws ParseException { 18 19 /* 20 *将日期格式的字符串-->日起对象 21 * 使用的是DateFormat类中的parse()方法。 22 */ 23 24 String str = "2016年9月10日 星期六"; 25 String str1 = "2016--09--10 02:22:08"; 26 27 DateFormat dateformat = DateFormat.getDateInstance(DateFormat.FULL);//格式与日期格式要对应 28 DateFormat dateformat1 = new SimpleDateFormat("yyyy--MM--dd hh:mm:ss"); 29 30 Date date = dateformat.parse(str); 31 System.out.println(date);//Sat Sep 10 00:00:00 CST 2016 32 33 Date date1 = dateformat1.parse(str1); 34 System.out.println(date1);//Sat Sep 10 02:22:08 CST 2016 35 } 36 37 public static void method_demo2() { 38 /* 39 * 对日期对象进行格式化 40 * 将日期对象-->日期格式的字符串 41 * 使用DateFormat类中的format方法。 42 */ 43 44 Date date = new Date(); 45 46 //获取日期格式对象,有FULL,LONG,SHORT,MEDIUM(默认)格式。不标明就是默认格式 47 DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL); 48 // System.out.println(dateFormat); //java.text.SimpleDateFormat@ef7951d7 49 String str = dateFormat.format(date); 50 System.out.println(str);//2016年9月10日 星期六 51 52 DateFormat dateFormat1 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.LONG); 53 String str1 = dateFormat1.format(date); 54 System.out.println(str1); //2016年9月10日 星期六 下午02时14分18秒 55 56 //如果风格想要自定义呢? 57 DateFormat dateFormat2 = new SimpleDateFormat("yyyy--MM--dd hh:mm:ss"); 58 String str2 = dateFormat2.format(date); 59 System.out.println(str2); //2016--09--10 02:22:08 60 61 } 62 63 public static void method_demo1() { 64 65 /* 66 * 日期对象和毫秒值之间的转换 67 * 68 * 毫秒值-->日期对象 69 * 1.通过Date对象的构造方法 new Date(timeMills); 70 * 2.还可以通过Settime设置 71 * 72 * 日期对象-->毫秒值 73 * getTime方法 74 */ 75 76 long time = System.currentTimeMillis(); 77 System.out.println(time); //1473485640659 78 79 Date date = new Date(); //将当前日期和时间封装成date对象。 80 System.out.println(date); //Sat Sep 10 13:39:21 CST 2016 81 82 Date date1 = new Date(1473485640659l); //将指定毫秒值封装成date对象。 83 System.out.println(date1); //Sat Sep 10 13:34:00 CST 2016 84 85 Date date2 = new Date(); 86 date2.setTime(1473485640659l); 87 long l = date2.getTime(); 88 System.out.println(l); //1473485640659 89 } 90 91 }
1 package p1; 2 3 import java.text.DateFormat; 4 import java.text.ParseException; 5 import java.util.Date; 6 7 /* 8 * “2012-3-17”到“2012-4-6”间有多少天 9 * 10 * 思路: 11 * 日期格式字符串-->日期对象-->获取毫秒值-->相减 12 */ 13 public class DateTest { 14 15 public static void main(String[] args) throws ParseException { 16 17 String str_date1 = "2012-3-17"; 18 String str_date2 = "2012-4-6"; 19 20 test(str_date1,str_date2); 21 22 } 23 24 public static void test(String str_date1, String str_date2) throws ParseException { 25 DateFormat dateformat = DateFormat.getDateInstance();//对应格式 26 27 Date date1 = dateformat.parse(str_date1); 28 Date date2 = dateformat.parse(str_date2); 29 30 long time1 = date1.getTime(); 31 long time2 = date2.getTime(); 32 33 long time = Math.abs(time1-time2); 34 35 int day = getDay(time); 36 System.out.println(day); 37 38 } 39 40 public static int getDay(long time) { 41 int day = (int)(time/1000/60/60/24); 42 return day; 43 } 44 45 }
Calendar类
1 package cn.itcast.p1.otherapi; 2 3 import java.util.Calendar; 4 5 public class CalendarDemo { 6 7 public static void main(String[] args) { 8 Calendar c = Calendar.getInstance(); 9 System.out.println(c); 10 /*电脑当前时间的日历 11 * 12 * java.util.GregorianCalendar[time=1473493014690,areFieldsSet=true, 13 areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai", 14 offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1, 15 minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=8,WEEK_OF_YEAR=37,WEEK_OF_MONTH=2,DAY_OF_MONTH=10, 16 DAY_OF_YEAR=254,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=3,HOUR_OF_DAY=15, 17 MINUTE=36,SECOND=54,MILLISECOND=690,ZONE_OFFSET=28800000,DST_OFFSET=0] 18 19 */ 20 21 showDate(c); 22 23 showDays(2016);//判断2016的二月有多少天 24 25 } 26 27 public static void showDays(int i) { 28 Calendar c = Calendar.getInstance(); 29 c.set(i, 2, 1); 30 31 c.add(Calendar.DAY_OF_MONTH, -1); 32 showDate(c); 33 } 34 35 public static void showDate(Calendar c) { 36 37 int year = c.get(Calendar.YEAR); 38 int month = c.get(Calendar.MONTH)+1; 39 int day = c.get(Calendar.DAY_OF_MONTH); 40 int week = c.get(Calendar.DAY_OF_WEEK); 41 int hour = c.get(Calendar.HOUR_OF_DAY); 42 int min = c.get(Calendar.MINUTE); 43 int second = c.get(Calendar.SECOND); 44 45 System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week)+" "+hour+":"+min+":"+second); 46 } 47 48 public static String getWeek(int week) { 49 String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; 50 51 return weeks[week]; 52 } 53 54 }