一、System类
System类中的方法和属性都是静态的。
常见方法:
long currentTimeMillis():获取当前时间的毫秒值
Properties getProperties():获取当前系统的属性信息
public class SystemApi {
public static void main(String[] args) {
long millisTime = System.currentTimeMillis();
System.out.println(millisTime);
Properties prop = System.getProperties();
Set<String> nameSet = prop.stringPropertyNames();
for(String name:nameSet) {
String value = prop.getProperty(name);
System.out.println(name+"::"+value);
}
}
}
二、Runtime类
Runtime:
没有构造方法摘要,说明该类不可以创建对象。
又发现该类有非静态方法,说明该类应该有提供的静态的返回该类对象的方法。
而且只有一个这种方法,说明Runtime类使用了单例设计模式。
public class RuntimeApi {
public static void main(String[] args) throws IOException, InterruptedException {
Runtime r = Runtime.getRuntime();
Process p = r.exec("open -a Safari.app http://www.baidu.com");
Thread.sleep(2000);
p.destroy();
}
}
三、Math类
常用方法:
double ceil():返回大于参数的最小整数。
double floor():返回小于参数的最大整数。
double round():返回四舍五入的整数。
max(a,b):返回最大值
pow(a,b):a的b次方
double random():返回大于等于0.0小于1.0的随机double值,与java.util中的Random类相似。
四、Date类
(一)、日期对象和毫秒值之间的转换
毫秒值–>日期对象
1、通过Date对象的构造方法 new Date(timeMills);
2、通过setTime方法。
目的是通过Date对象的方法,对该日期中的年月日等字段进行操作。
日期对象–>毫秒值
1、通过getTime方法。
目的是通过具体的数值进行运算。
public static void thord1() {
//long time = System.currentTimeMillis();//1515489394135
Date date1 = new Date();//将当前日期和时间封装成Date对象
System.out.println(date1);//Tue Jan 09 17:16:34 CST 2018
Date date2 = new Date(1515489367117l);//将指定毫秒封装成Date对象
System.out.println(date2);//Tue Jan 09 17:16:07 CST 2018
}
(二)、日期对象转成字符串
public class DateDemo {
public static void main(String[] args) {
Date date = new Date();
//获取日期格式对象。具备着默认的风格
DateFormat dateFormat = DateFormat.getDateInstance();
String str_date = dateFormat.format(date);
System.out.println(str_date); //Jan 9, 2018
DateFormat dateFormat2 = DateFormat.getDateTimeInstance();
String str_date2 = dateFormat2.format(date);
System.out.println(str_date2);//Jan 9, 2018 5:48:43 PM
//其它风格 FULL LONG SHORT MEDIUM
//DateFormat dateFormat3 = DateFormat.getDateInstance(DateFormat.FULL);//Tuesday, January 9, 2018
//DateFormat dateFormat3 = DateFormat.getDateInstance(DateFormat.LONG);//January 9, 2018
//DateFormat dateFormat3 = DateFormat.getDateInstance(DateFormat.SHORT);//1/9/18
DateFormat dateFormat3 = DateFormat.getDateInstance(DateFormat.MEDIUM);//Jan 9, 2018
String str_date3 = dateFormat3.format(date);
System.out.println(str_date3);
//日期和时间
DateFormat dateFormat4 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);//Jan 9, 2018
String str_date4 = dateFormat4.format(date);
System.out.println(str_date4);
//自定义风格
DateFormat dateFormats = DateFormat.getDateInstance();
dateFormats = new SimpleDateFormat("yyyy-MM-dd");
String str_date5 = dateFormats.format(date);
System.out.println(str_date5);//2018-01-09
}
}
(三)、字符串转成日期对象
使用的是DateFormat类中的parse方法。
public class DateFormatDemo {
public static void main(String[] args) throws ParseException {
//默认的日期字符串格式转成日期对象
String str_date = "Jan 9, 2018 5:48:43 PM";
DateFormat dateFormat = DateFormat.getDateInstance();
Date date = dateFormat.parse(str_date);
System.out.println(date);
//将自定义的日期字符串格式转成日期对象
String str_date2 = "2018--1--10";
DateFormat dateFormat2 = DateFormat.getDateInstance(DateFormat.LONG);
dateFormat2 = new SimpleDateFormat("yyyy--MM--dd");
Date date2 = dateFormat2.parse(str_date2);
System.out.println(date2);
}
}
(四)、Date类 - 练习
public class Demo1 {
public static void main(String[] args) throws ParseException {
/**
* 练习:
* "2017.12.20"到"2018.1.10"中间相隔多少天
*
* 思路:
* 1、日期字符串转日期对象
* 2、日期对象方法获取毫秒数
* 3、毫秒数相减,再计算天数
*/
String str_date1 = "2017.12.20";
String str_date2 = "2018.1.10";
//DateFormat dateFormat = DateFormat.getDateInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd");
Date date1 = dateFormat.parse(str_date1);
Date date2 = dateFormat.parse(str_date2);
long date1Millis = date1.getTime();
long date2millis = date2.getTime();
int day = (int) Math.abs(date1Millis - date2millis)/1000/60/60/24;
System.out.println(day);
}
}
四、Calendar类
常见方法:
set()
get()
add():偏移
一、基本演示
public class CalendarDemo {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int day = c.get(Calendar.DAY_OF_MONTH);
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));
}
private static String getWeek(int i) {
String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return weeks[i];
}
}
二、练习
public class CalendarDemo {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
//指定日期
c.set(2018, 0, 20);
showDate(c);
//日期偏移
c.add(Calendar.YEAR, 2);
showDate(c);
}
public static void showDate(Calendar c) {
//Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int day = c.get(Calendar.DAY_OF_MONTH);
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));
}
private static String getWeek(int i) {
String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return weeks[i];
}
}