11.其他对象【System】【Runtime】【Math】【Date】【Calendar】

来源:互联网 发布:java类库有哪些 编辑:程序博客网 时间:2024/05/16 11:15


 

一、    System

System类中的方法和成员都是静态的。

常用的方法:

l long currentTimeMillis();//返回当前时间的毫秒值。若要专为天数,可以运算/1000/60/60/24.

l Properties getProperties();//获取系统的配置信息。Properties集合中存储的都是String类型的键和值。

l setProperty(String key,String value);//设置属性信息。

System类的示例:

   

<span style="font-size:18px">import java.util.Properties;import java.util.Set;public class SystemDemo {//获取某一系统属性private static final String LINE_SEPARATOR = System.getProperty("line.separator");public static void main(String[] args) {/* * System:类中的方法和成员都是静态的。 */long l1 = System.currentTimeMillis();//1380194628837System.out.println(l1/1000/60/60/24);//化成秒/分/时/天//code...long l2 = System.currentTimeMillis();System.out.println(l2-l1);//code代码段运行时间。//System.out.println("hello \r\n world");//调用方法,在不同的平台下,先获取平台信息,再换行。虚拟机启动时,都会先去拿该系统信息。System.out.println("hello-"+LINE_SEPARATOR+"world");//demo_1();//给系统添加属性信息,这些信息是全局的。其他程序都可以使用。System.setProperty("myclasspath", "c:myclass");}public static void demo_1(){//获取系统的属性信息。并保存到Properties集合中。/* * Properties集合中存储的都是String类型的键和值。 * 最好使用它自己的存储和取出的方法来操作。 */Properties prop = System.getProperties();Set<String> nameSet = prop.stringPropertyNames();//可以用keySet方法,但是得到set集合是Object类型,需要强转至Stringfor(String name : nameSet){String value = prop.getProperty(name);System.out.println(name+"::"+value);}}}</span>


 

二、    Runtime

Runtime类没有构造方法摘要,构造方法被私有化,所以不能创建对象。提供了静态

   的返回该类对象的方法,即Runtime类使用了单例设计模式。这样保证了对象的唯一想。

      这个方法就是static RuntimegetRuntime()方法。

   常用方法:

l Runtime getRuntime();获取Runtime对象

l exec(运行的程序名.exe程序解析的文件路径);执行某一程序去解析指定路径下的文件。

l destroy();杀掉进程。

   代码示例:

   

import java.io.IOException;

public class RuntimeDemo {

 public static void main(String[] args) throws IOException, InterruptedException {
  
  Runtime r = Runtime.getRuntime();
  
//  execute:执行。   xxx.exe
  
//  r.exec("notepad.exe f:\\RuntimeDemo.java");//运行一程序,去解析某一路径下的文件。但是文件和程序要匹配。
  
  Process p = r.exec("notepad.exe");
  Thread.sleep(5000);//延时5秒。
  p.destroy();//调用destroy杀掉进程。
 }

}

三、    Math

Math类包含用于基本数学运算的方法,如初等函数、对数、平方根和三角函数。该类

   方法都为静态

   常用方法:

l doubleceil();返回大于参数的最小整数。

l doublefloor();返回小于参数的最大整数。

l intround();返回四舍五入的整数,即最接近参数的整数。

l doublepow(double a,double b);ab次方。

l doublerandom();获取大于0,小于1的随机数。

代码示例:

<span style="font-size:18px">import java.util.Random;public class MathDemo {public static void main(String[] args) {/* * Math: *  * 常用方法: * ceil():返回大于参数的最小整数。 * floor():返回小于参数的最大整数。 * round():返回四舍五入的整数。即最接近参数的整数。 * pow(a,b):a的b次方。 * random():大于等于0,小于1的随机数。 */double d1 = Math.ceil(12.56);double d2 = Math.floor(12.56);double d3 = Math.round(12.46);//sop("d1="+d1);//sop("d2="+d2);//sop("d3="+d3);//double d = Math.pow(10, 2);//sop("d="+d);//产生随机数Random r = new Random();for(int i = 0; i < 10; i++){//double d = Math.random();//double d = Math.ceil(Math.random()*10);//产生1~10的随机数。//double d = (int)(Math.random()*10+1);//法二//double d = (int)(Math.random()*6+1);//骰子的功能,1~6随机数。//double d = (int)(r.nextDouble()*6+1);int d = r.nextInt(6)+1;System.out.println(d);}}public static void sop(String string) {System.out.println(string);}}</span>


 

四、    Date

1.  概述

Date类表示特定的时间。

Java中默认的显示格式为:Fri Nov 01 23:10:33 CST 2013

2.  自定义风格

默认的时间显示格式不一定适合每一个人。这时可以自定义显示格式。

      但是Date类中许多方法被Calendar或者DateFormat所取代,所以可以找

      DateFormat类来实现。其中有format方法正好可以很好的将日期对象转换为特定格

      式的字符串格式。其子类SimpleDateFormat可以定义时间格式。

3.  自定义风格的实现步骤(对日期对象进行格式化)

1)  创建Date对象

2)  获取日期格式对象,通过DateFormat getDateInstance(DateFormat.指定分格);

3)  通过子类SimpleDateFormat创建其对象,并在构造方法中指定格式,获取DateFormat对象

4)  调用DateFormatformat方法,将Date对象作为参数传递,转为字符串格式

4.  将日期格式的字符串转换为日期对象。

1)  获取日期字符串对象

2)  获取日期格式对象

3)  通过SimpleDateFormat子类创建和日期字符串对应的日期格式,返回DateFormat对象。

4)  调用DateFormat对象中的Date parse(String date)方法,将字符串格式转为日期对象。

 

代码1:日期对象和毫秒值之间的转换。

       毫秒值-->日期对象。
     1.通过Date对象的构造方法 new Date(timeMillis);
     2.还可以通过setTime设置。
     因为可以通过Date对象的方法对该日期中的各个字段(年月日等)进行操作、
   
   日期对象-->毫秒值
     通过getTime方法获取
     因为可以通过具体数值来运算。

<span style="font-size:18px">public static void methodDemo_1() {long time = System.currentTimeMillis();//System.out.println(time);//1380250248987////Date date = new Date();//将当前日期和时间封装成Date对象。//System.out.println(date);//Fri Sep 27 10:51:44 CST 2013Date date2 = new Date(1380250248987l);//将指定的毫秒值封装成Date对象。System.out.println(date2);Date date3 = new Date();date3.setTime(time);System.out.println(date3);}</span>

 

代码2:对日期象进行格式化。


 

<span style="font-size:18px">public static void methodDemo_2() {Date date = new Date();//获取日期格式对象,具体着默认的风格。FULL,LONG,SHORT可以指定风格。DateFormat datefomat = DateFormat.getDateInstance(DateFormat.LONG);// datefomat = DateFormat.getDateTimeInstance();//带时间的格式。//怎样自定义风格呢?使用的是子类SimpleDateFormat构造方法。y-年,M-月份,d-天数。datefomat = new SimpleDateFormat("yyyy--MM--dd");//转成字符串格式String myDate = datefomat.format(date);System.out.println(myDate);}</span>


 

代码3:将日期格式的字符串-->日期对象

       使用的是DateFormat类中的parse方法。

<span style="font-size:18px">public static void methodDemo_3() throws ParseException {//String str_date = "2013-09-27";//要解析的字符串String str_date = "2013年09月27日";//此日期格式是LONG型,str_date = "2011---8---20";//属自定义格式,须定义一个格式与之相同。DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);dateFormat = new SimpleDateFormat("yyyy---MM---dd");Date date = dateFormat.parse(str_date);System.out.println(date);}</span>

练习:"2012-3-17"到"2012-4-6"中间有多少天。

思路:
  1.将日期格式的字符串-->日期对象。
    DateFormat.getDateInstance();
    parse()解析字符串。
  2.将日期对象-->毫秒值。
    日期对象调用getTime()方法即可转换。
  3.将两个毫秒值日期相减,再换算成天数,即可得到相差的天数。

import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class DateTest {public static void main(String[] args) throws ParseException {String str_date1 = "2012-3-17";String str_date2 = "2012-4-8";method(str_date1,str_date2);}public static void method(String str_date1, String str_date2) throws ParseException {//定义与日期格式的字符串一致的格式。DateFormat dateFormat = DateFormat.getDateInstance();//解析字符串的日期成日期对象。Date date1 = dateFormat.parse(str_date1);Date date2 = dateFormat.parse(str_date2);//日期对象转换成毫秒值long d1 = date1.getTime();long d2 = date2.getTime();//两个日期相差的毫秒值long d = d2-d1;System.out.println(d);//调用换算成天数的方法millisToDay(d);}public static void millisToDay(long d) {System.out.println(d/1000/60/60/24);}}


 

五、    Calendar

1. 概述

Calendar类是一个抽象类,它为特定瞬间与YEARMONTHDAY_OF_MONTH等日历字段之间的转换提供了一些方法。

2. 获取时间

l 获取年份:Calendar.YEAR

l 获取月份:Calendar.MONTH

l 获取日期:Calendar.DAY_OF_MONTH

l 获取星期:Calendar.DAY_OF_WEEK

l 获取小时:Calendar.HOUR_OF_DAY

l 获取分钟:Calendar.MINUTE

l 获取秒数:Calendar.SECOND

代码示例:

      

<span style="font-size:18px">import java.util.Calendar;public class CalendarDemo {public static void main(String[] args) {//导入Calendar类Calendar c = Calendar.getInstance();showDate(c);}//获取日期private static void showDate(Calendar c) {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+"日"+getWeeks(week));}public static String getWeeks(int day) {String[] weeks = {" ","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};return weeks[day];}}</span>


 

 

原创粉丝点击