-------<a target=_blank target="_blank" href="http://www.itheima.com/">android培训</a>、<a target=_blank target="_blank" href="http://blog.csdn.net/ochuxinzhe/article/details/www.itheima.com">java培训</a>、期待与您交流!----------
1 System类
System类中的字段和方法都是静态的。
1.1 常用方法
1.1.1 获取时间
long currentTimemMillis();获取当前时间的毫秒值。
可以通过多次调用此方法获得程序执行的时间。
public class Day20 {
public static void main(String[] args){
long timeBegin = System.currentTimeMillis();
System.out.println(timeBegin);
for(int i=0;i<100;i++){try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.print(i);}
System.out.println();
long timeEnd = System.currentTimeMillis();
System.out.println(timeEnd);
System.out.println(timeEnd-timeBegin);
}
}
1444727053346
0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
1444727054385
1039
1.1.2 获取系统信息
Properties getProgerties();获取当前的系统属性
Properties是一个集合,存储的都是String类型的键值,这些键值跟当前系统的信息有关。
其中,该类下有stringPropertyNames()方法可以将Properties里的键全部获取并返回一个Set集合。
又有getProperty()方法可以根据键获取系统信息中的值。
class Day20{
public static void main(String[] args){
Properties p = System.getProperties();
System.out.println(p);
Set<String> s = p.stringPropertyNames();
System.out.println(s);
Iterator<String> i = s.iterator();
while(i.hasNext()){
String key = i.next();
String value = p.getProperty(key);
System.out.println(key+"..."+value);
}
}
}
PS:还可以给属性设置一些属性信息,这些信息是全局的,用java添加之后,其它程序都可以使用。
方法:System.setProperty("myName“,"zhangsan");
2 Runtime类
每个Java应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。应用程序不能够创建自己的Runtime实例。
它没有构造函数,说明不能直接创造它的实例,但是它有方法,说明要么它所有方法都是静态方法,要么它能返回一个自己的对象的方法(即单例设计模式)。
Runtime就是后者,单例设计模式的类,
Runtime getRumtime();获取该类的对象。
class Day20{
public static void main(String[] args) throws IOException{
Runtime r = Runtime.getRuntime();
r.exec("D:\\Program Files\\Tencent\\QQ\\Bin\\QQScLauncher.exe");
}
}
用Runtime下的exec();方法可以根据路径运行系统里的程序。
3 Math类
Math:头功了操作数学运算的方法,都是静态的。
常用方法:
ceil():返回大于参数的最小整数
floor():返回小于参数的最大整数。
round():返回四舍五入的整数。
4 Date、DateFormat类
new Date()新对象可以直接获取目前的时间,
new Date(Long millis);输入毫秒可以将毫秒转换成时间
class Day20{
public static void main(String[] args){
Date d = new Date();
System.out.println(d);
Date d2 = new Date(1000*60);
System.out.println(d2);
}
}
Tue Oct 13 17:29:07 CST 2015
Thu Jan 01 08:01:00 CST 1970
4.1 日期对象和毫秒值之间的转换
4.1.1 毫秒值转化为日其对象的两个方法
①通过Date对象的构造方法new Date(Long millis);
②通过setTime()设置。因为可以通过Date对象的方法对该日期中的各个字段(年月日等)进行操作
4.1.2 日期对象转化为毫秒
①getTime方法,直接getTime可获得当前时间的毫秒值,与System.currentTimeMillis()一样。
4.1.3 DateFormat类
它是一个单例设计模式,需要getInstance()。
但DateFormat子类中有SimpleDateFormat类供使用。可以理解为SimpleDateFormat类是一个时间的格式化器,创建这个对象,就可以去格式化参数里的时间。
class Day20{
public static void main(String[] args){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
System.out.println(sdf.format(new Date()));
}
}
2015年10月13日
但是DateFormat出来的时间都是String形式,不能拿到计算,需要用Integer.parseInt();转换。
4.1.4 将日期格式的字符串转换成日其对象
使用的是DateFormat中的parse方法。返回日期对象
class Day20{
<span style="white-space:pre"> </span>public static void main(String[] args) throws ParseException{
//<span style="white-space:pre"> </span>String s1 ="2015nian4yue19ri";
<span style="white-space:pre"> </span>String s1 ="2015年4月19日";
<span style="white-space:pre"> </span>DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
<span style="white-space:pre"> </span>Date d = df.parse(s1);
<span style="white-space:pre"> </span>System.out.println(d);
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>DateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日");
<span style="white-space:pre"> </span>Date d2 = df2.parse(s1);
<span style="white-space:pre"> </span>System.out.println(d2);
<span style="white-space:pre"> </span>}
}
注意日期字符串要保证符合日期的格式
示例:“2015-10-11”到“2014-10-11”中间有多少天?
思路:因为日期值不能直接相减,但是毫秒值可以,
需要先把日期转换成毫秒值,就需要获取Date对象,再用Date对象的getTime()方法转换成毫秒值。
获取Date对象,首先要把字符串换成Date对象
class Day20{
public static void main(String[] args) throws ParseException{
String s1 = "2015-10-11";
String s2 = "2014-10-11";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = df.parse(s1);
Date d2 = df.parse(s2);
System.out.println(d1);
System.out.println(d2);
long l1 = d1.getTime();
long l2 = d2.getTime();
long l = l2-l1;
System.out.println(l);
int day = Math.abs((int)(l/1000/60/60/24));
System.out.println("相差"+day+"天");
}
}
5 Calendar类
Calendar是一个抽象类,它为特定巡检与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并未操作日历字段(例如获得下星期的日期)提供了一些方法。
Calendar.YEAR
Calendar.MONTH
...等等形式可以理解为日期格式的模板
Calendar c = Calendar.getInstance();
c.get(Calendar.YEAR);返回年份
c.set(2013,12,11);注意月份一月为0,二月为1
c.add(Calendar.Month, +1);加一个月
c.add(Calendar.DAY_OF_MONTH,-1);获取当月的往前推一天,就是上一月的天数