其他对象API(Date+Calendar+System+Runtime+Math)

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值