System类
/**
* system:类中的方法和属性都是静态的。
* 常见方法:
* long currenTimeMillies();获取当前时间的毫秒值。
*/
long l1 = System.currentTimeMillis();
System.out.println(l1);//1613828011974
long l2 = System.currentTimeMillis();
System.out.println(l2-l1);
System.out.println(l2/1000/60/60/24);
获取系统信息
public static void demo_1(){
//确定当前系统属性
//获取系统属性信息,存储到Properties集和中。
/**
* properties集和中存储的都是String类型的键和值,
* 最好使用它自己存储和取出方法完成元素操作。
*/
Properties prop = System.getProperties();
Set<String> nameSet = prop.stringPropertyNames();
for(String name:nameSet){
String value = prop.getProperty(name);
System.out.println(name+"::"+value);
}
System.out.println("hello ---"+System.getProperty("line.separator")+"world!");//中间加换行,适用于任何系统
//给系统设置属性信息,这些信息是全局的,其他程序也可以使用
// System.setProperty("key", "value");
}
Runtime类
/**
* Runtime:没有构造方法摘要,说明该类不可以创建对象。
* 又发现还有非静态的方法。说明该类应该提供静态的返回该类对象的方法。
* 而且只有一个,说明runtime类使用了单例设计模式。
*/
Runtime r = Runtime.getRuntime();
//execute:执行 xxx.exe
Process p = r.exec("QQ.exe");
p.destroy();//杀掉子进程
Math类
/**
* java.lang.Math
* Math:提供了操作数学运算的方法,都是静态的
* 常用的方法:
* cell();返回大于参数最小整数
* floor();返回参数最大整数
* round();返回四舍五入的整数
*/
double d1 = Math.ceil(12.56);//13
double d2 = Math.floor(12.56);//12
double d3 = Math.round(12.56);//13
System.out.println(d1+"--"+d2+"--"+d3);
Random r = new Random();
for(int i=0;i<10;i++)
{
//double d = Math.floor(Math.random()*10);//生成0-1.0之间的随机数,包含0
// double d = r.nextDouble()*6+1;
int d = r.nextInt();
System.out.println(d);
}
Date类
/**
* 日期对象和毫秒值之间的转换
* 毫秒值-->日期对象:
* 1.通过date对象的构造方法new Date(timeMillies);
* 2.还可以通过setTime设置。
* 因为可以通过Date对象方法对该日期中的各个字段(年月日等)进行操作。
* 日期对象-->毫秒值:
* 2.getTime方法
* 因为可以通过具体的数值进行运算。
*/
public static void demo_1(){
long time = System.currentTimeMillis();
System.out.println(time);
Date date = new Date();//将当前日期和时间封装成date对象
Date date1 = new Date(161404564);//将指定毫秒值封装成date对象
System.out.println(date);
System.out.println(date1);
}
/**
* 对日期对象进行格式化
* 将日期对象转换成日期格式的字符串:
* 使用DateFormat类中的format方法。
*
* 将日期格式的字符串转成日期对象:
* 使用的是DateFormat类中的parse方法
*/
public static void demo_2() throws ParseException{
Date date = new Date();
//获取日期对象,具备着默认的风格
DateFormat dateFormat = DateFormat.getDateInstance();
// dateFormat = DateFormat.getDateInstance(int style);
//dateFormat = DateFormat.getDateInstance(DateFormat.FULL);//2021年2月23日星期二
//dateFormat = DateFormat.getDateInstance(DateFormat.LONG);//2021年2月23日
String str_date = dateFormat.format(date);//2021年2月23日
System.out.println(str_date);
//自定义日期格式
dateFormat = new SimpleDateFormat("yyyy--MM--dd");
String str_date1 = dateFormat.format(date);//2021--02--23
System.out.println(str_date1);
//日期字符串转日期对象
String str_date2 = "2021年2月23日";
DateFormat dateFormat2 = DateFormat.getDateInstance();//可以指定格式,Dateformat.LONG
Date da = dateFormat2.parse(str_date2);//需要抛出异常ParseException
System.out.println(da);
}
Calendar类
Calendar c = Calendar.getInstance();
System.out.println(c);
/*
java.util.GregorianCalendar[time=1614065949217,areFieldsSet=true,areAllFieldsSet=true,lenient=true,
zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,
transitions=31,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,
YEAR=2021,MONTH=1,WEEK_OF_YEAR=9,WEEK_OF_MONTH=4,DAY_OF_MONTH=23,DAY_OF_YEAR=54,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=4,
AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=39,SECOND=9,MILLISECOND=217,ZONE_OFFSET=28800000,DST_OFFSET=0]
*/
//将Calendar对象转换成年月日
System.out.println(c.get(Calendar.YEAR));
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int day_of_month = c.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"年"+month+"月"+day_of_month+"日");//2021年2月23日
练习
两个日期之间相隔多少天 Date类
/*
1.将日期格式的字符串转成Date对象
2.将Date对象转成毫秒值
3.相减,变成天数
*/
String str_date1 = "2012-3-17";
String str_date2 = "2012-3-20";
DateFormat dateFormat = DateFormat.getDateInstance();
dateFormat = new SimpleDateFormat("yyyy-MM-dd");
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);
System.out.println(time/1000/60/60/24);//将毫秒转换成天
Calendar类练习
Calendar c = Calendar.getInstance();
c.set(2022, 6, 30);//设定日期
System.out.println(c);
//时间偏移
c.add(Calendar.MONTH, 2);
System.out.println(c);
//写一个目录展示任何一年中的2月有多少天
int year = 2022;
Calendar c1 = Calendar.getInstance();
c1.set(year,2,1);
c1.add(Calendar.DAY_OF_MONTH, -1);//在3月1日的基础上往前推一天
System.out.println(c1.get(Calendar.DAY_OF_MONTH));//28