java的 Date类、DateFormat类、Calendar类、基本类型包装类、System类、Math类
1、Date类:
(1)时间和日期的计算,必须依赖毫秒值;
package com.oracle.demo01; import java.util.Date; public class demo01 { public static void main(String[] args) { long time = System.currentTimeMillis(); System.out.println(time); //创建当前日期的对象 Date date = new Date(); System.out.println(date); System.out.println(date); //创建指定毫秒值的日期对象 Date date1 = new Date(11111111111111111l); System.out.println(date1); } }
(2)常用方法:getTime() 把日期对象转换成对应的时间毫秒值;
package com.oracle.demo01; import java.util.Date; public class demo04 { public static void main(String[] args) { //Date的getTime方法 System.out.println(new Date().getTime()); } }
效果如下:
2、DateFormat类:
(1)DateFormat是抽象类,我们需要使用其子类SimpleDateFormat来创建对象;
(2)DateFormat类常用方法:
format方法,用来将Date对象转换成String;
parse方法,用来将String转换成Date(转换时,该String要符合指定格式,否则不能转换);
package com.oracle.demo01; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class demo02 { public static void main(String[] args) throws ParseException { SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //日期转成字符串 String time1 = s.format(new Date()); System.out.println(time1); //字符串转成日期对象 Date d = s.parse(time1); System.out.println(d); } }
效果如下:
3、Calendar类:
(1)该类将所有可能用到的时间信息封装为静态成员变量;【以此类推】
(2)Calendar类静态方法:Calendar c = Calendar.getInstance(); //返回当前时间;
(3)西方星期的开始为周日,中国为周一;在Calendar类中,月份的表示是以0-11代表1-12月;
(4)getTime()方法:获取该日历对象转成的日期对象 [注意跟Date类不一样]
package com.oracle.demo01; import java.util.Calendar; public class demo03 { public static void main(String[] args) { Calendar c = Calendar.getInstance(); //偏移量 c.add(Calendar.DATE, 1); System.out.println(c.getTime()); //取值 Calendar s = Calendar.getInstance(); System.out.println(s.get(Calendar.MONTH));//+1 System.out.println(s.get(Calendar.DAY_OF_WEEK));//-1 s.set(Calendar.YEAR, 2088); System.out.println(s.get(Calendar.YEAR)); } }
效果如下:
4、基本类型包装类:
(1)字符串转成基本类型:包装类.parseXXX(String s);
package com.oracle.demo02; public class demo01 { public static void main(String[] args) { //将字符串转成基本数据类型, 包装类.parseXXX(String s); String s1 = "123"; int n1 = Integer.parseInt(s1); System.out.println(n1+1); } }
效果如下:
注意:基本类型与包装类匹配 否则运行时报错:
package com.oracle.demo02; public class demo01 { public static void main(String[] args) { //将字符串转成基本数据类型, 包装类.parseXXX(String s); String s1 = "你好啊"; int n1 = Integer.parseInt(s1); System.out.println(n1+1); } }
效果如下:
NumberFormatException:
(2)将基本数据类型转为字符串:第一种与""相连;第二种 valueof;第三种:toString(基本数据类型);
package com.oracle.demo02; public class demo01 { public static void main(String[] args) {//将基本数据类型转为字符串 //第一种与""相连 System.out.println(12+""+1); //第二种 valueof System.out.println(String.valueOf(12)+6); //toString(基本数据类型) System.out.println(Integer.toString(12)+9); } }
效果如下:
(3)基本类型和对象转换:
基本数值---->包装对象:
第一种构造方法:包装类 i= new 包装类(基本类型);或者包装类 i= new 包装类("基本类型");
第二种方法:通过包装类的valueof方法;
package com.oracle.demo02; public class demo02 { public static void main(String[] args) { //基本数据类型和包装类之间的转换 //第一种 通过构造方法 Integer in = new Integer(44); Integer in2 = new Integer("44"); //第二种 通过包装类的valueof方法 Integer in3 = Integer.valueOf(33); Integer in4 = Integer.valueOf("33"); } }
(4)将包装类对象转为基本数据类型:
举例子:
package com.oracle.demo02; public class demo02 { public static void main(String[] args) { Integer in = new Integer(44);//将包装类对象转为基本数据类型 int i = in.intValue();
System.out.println(i+1); } }
效果如下:
(5)自动装箱 基本类型 =》包装类;
自动拆箱 包装类 =》基本类型;
package com.oracle.demo02; public class demo03 { public static void main(String[] args) { //自动装箱 基本类型 =》包装类 Integer i = 2; //自动拆箱 包装类 =》基本类型 int sum = i+2; } }
注意:byte常量池 jdk1.5 自动装箱 调用范参时不会自动装箱;
jdk1.5
byte常量池:
package com.oracle.demo02; public class demo04 { public static void main(String[] args) { Integer in1 = 50; Integer in2 = 50; //byte常量池 System.out.println(in1 == in2); System.out.println(in1.equals(in2)); } }
效果如下:
范参不会自动装箱:
5、System类:
注意一下:arraycopy方法:用来实现将源数组部分元素复制到目标数组的指定位置(源数组,源数组起始位置,目标数组,目标数组起始位置,长度)
package com.oracle.demo03; public class demo01 { public static void main(String[] args) { //复制数组 int[] arr = {1,2,2,3,4,5,6}; int[] arr2 = new int[10]; System.arraycopy(arr, 2, arr2, 0, 4); for(int i = 0;i < arr2.length;i++){ System.out.println(arr2[i]); } } }
效果如下:
exit(int status)方法:用来结束正在运行的Java程序。参数传入一个数字即可。通常传入0记为正常状态,其他为异常状态
package com.oracle.demo03; public class demo01 { public static void main(String[] args) { int[] arr = {1,2,2,3,4,5,6}; int[] arr2 = new int[10]; System.arraycopy(arr, 2, arr2, 0, 4); //先不关注复制数组,先关注停止java虚拟机的运行 for(int i = 0;i < arr2.length;i++){ if(i == 2){ System.exit(0); } System.out.println(arr2[i]); } } }
效果如下:
6、Math类:
注意向上取整方法:Math.ceil(double i);可以用来做分页;
package com.oracle.demo03; public class demo02 { public static void main(String[] args) { System.out.println(Math.ceil(2.3)); } }
效果如下:
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步