本文主要是介绍11.其他对象【System】【Runtime】【Math】【Date】【Calendar】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、 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);a的b次方。
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) 调用DateFormat的format方法,将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类是一个抽象类,它为特定瞬间与YEAR、MONTH、DAY_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>
这篇关于11.其他对象【System】【Runtime】【Math】【Date】【Calendar】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!