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