1.Date类
1.date类的使用
创建一个date类对象:Date date=new Date();
format
这边的date还不是我们想要的格式,因此我要进行转换
首先创建SimpleDateFormat(DateFormat的子类)对象:SimpleDateFormat sdf=new SimpleDateFormat ("yyyy年MM月dd日 HH时mm分ss秒");这边的字符串参数是我们想要的日期格式。
sdf对象调用format方法格式化,将date时间作为参数传递到方法中,并且用一个字符串接收:String d=sdf.format(date);
其中parse方法是将已经格式化的日期还原成格式化之前的日期。
代码如下:
SimpleDateFormat sdf=new SimpleDateFormat("yyy-MM-dd HH-mm-ss"); //用SimpleDateFormat对象调用DateFormat的format方法 String d=sdf.format(date); System.out.println(d);//2020-12-16 00-01-17 Date parse = sdf.parse(d); System.out.println(parse);//Wed Dec 16 00:01:17 GMT+08:00 2020
2.Calendar 日历类
Calendar类是一个抽象类,里边提供了很多操作日历字段的方法,因此日历类是无法直接创建对象使用,Calendar中有一个静态方法getInstance(),该方法返回了Calendar类的子类对象。
Calendar类中常用的成员方法有:
public int get(int field):返回给定日历字段的值。
public void set(int field,int value):将给定的日历字段设置为给定值
public abstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量
下面是对成员方法的参数的解释:
int field:日历类的字段,可以使用Calendar类的静态成员变量获取
public static final int YEAR; 年
public static final int MONTH;月
public static final int DATE; 月中的某一天
public static final int DAY_OF_MONTH;月中的某一天
public static final int HOUR;时
public static final int MINUTE;分
public static final int SECOND;秒
get()方法的案例代码:
//使用getIntance方法获取Calendar子类对象 //c是Calendar子类的对象 Calendar c=Calendar.getInstance(); //通过子类对象访问Calendar类的静态变量YEAR //再把访问YEAR的值赋值给i int i = c.get(Calendar.YEAR); System.out.println(i);//2020 int i1 = c.get(Calendar.MONTH)+1;//西方月份0-11 System.out.println(i1);// 12 //这个月的第几天:DAY_OF_MONTH int i2 = c.get(Calendar.DAY_OF_MONTH); System.out.println(i2);//16
set()方法的案例代码
//使用getInstance方法获取Calendar子类对象 Calendar c=Calendar.getInstance(); //设置年为9999年 c.set(Calendar.YEAR,9999); //同时设置年月日,使用set的重载方法 int i = c.get(Calendar.YEAR); System.out.println(i);//9999
add()方法案例代码
//使用getInstance方法获取Calendar子类对象 Calendar c = Calendar.getInstance();//当前是2020年 //把年增加2年 c.add(Calendar.YEAR,2); int i = c.get(Calendar.YEAR); System.out.println(i);//2022
当然日历类也有获取当前日期的方法:通过Calendar子类对象调用getTime()方法就能返回一个date日期
代码如下:
Calendar c = Calendar.getInstance(); //将日历格式转换为日期格式 Date time = c.getTime(); System.out.println(time);//Wed Dec 16 00:46:11 GMT+08:00 2020 //SimpleDateFormat是DateFormat的子类 //创建一个SimpleDateFormat对象,通过构造方法传递需要的格式 SimpleDateFormat sdf=new SimpleDateFormat("yyy-MM-dd"); //用SimpleDateFormat对象调用DateFormat的format方法 String d = sdf.format(time); System.out.println(d);//2020-12-16
System类
currentTimeMillis()方法:返回以毫秒为单位的当前时间(自1970年1月1日00:00:00 GTM以来的毫秒数)
代码:
long s = System.currentTimeMillis(); System.out.println(s);//1608051691306 for (int i = 0; i < 9999; i++) { System.out.println(i); } long e = System.currentTimeMillis(); System.out.println(e);//1608051691357 System.out.println("for循环用时"+(e-s)+"毫秒");//for循环用时51毫秒
其中s为循环开始时间,e为循环结束时间
Arraycopy()方法:由方法名可知,这是复制数组的一个方法
public static void arraycopy (Object src,int srcPos,Object dest,int destPos,int length)
src-源数组 srcPos-源数组中的起始索引 dest-目标数组 destPos-目标数组中的起始位置 length-要赋值的数组数量
代码:
//定义源数组 int []src={1,2,3,4,5}; //定义目标数组 int []dest={6,7,8,9}; System.out.println("复制前"+ Arrays.toString(dest));//复制前[6, 7, 8, 9] // 使用System类中的arraycopy把源数组的前3个元素复制到目标数组的前3个位置 System.arraycopy(src,0,dest,0,3); System.out.println(Arrays.toString(dest));//[1, 2, 3, 9]
由于数组的长度不可变性,复制过去的值将直接覆盖原来的数组值。
StringBuilder类 字符串缓冲区
StringBuilder bu1=new StringBuilder();空构造方法将构造一个不带任何字符的字符串生成器,容量为16
StringBuilder bu2=new StringBuilder("abc");带参数的构造方法将构造一个字符串生成器,并初始化为指定的字符串内容
append()方法
此方法为添加字符串的方法
代码:
//创建一个StringBuilder对象,并赋值 StringBuilder bu3=new StringBuilder("abc"); //使用append方法添加字符串 bu3.append("123"); System.out.println("bu3:"+bu3);//bu3:abc123
String字符串是常量,他们的值在创建之后不能改变
StringBuilder是字符串缓冲区(看成一个长度可以变化的字符串,底层是一个数组),可以提高字符串的操作效率。在内存中始终是一个长度为16数组,如果字符串超出了StringBuilder的容量,会自动扩容
String和StringBuilder相互转换的代码:
//String-->StringBuilder String str="hello"; System.out.println("str:"+str);//str:hello StringBuilder bu1=new StringBuilder(str); //往StringBuilder添加数据 bu1.append("world"); System.out.println("bu1:"+bu1);//bu1:helloworld //StringBuilder-->String String s = bu1.toString(); System.out.println(s);//helloworld
今天先写到这里,一点多了已经,外加今天感冒了加鼻炎老难受了,还是先结束休息吧,明天继续更... 2020.12.16
今天继续昨天的复习...2020.12.17
##Integer类,自动装箱与自动拆箱
自动装箱:直接把int类型的整数赋值包装类:Integer in=1;相当于Integer in =newInteger(1);
自动拆箱:iu是包装类,无法直接参与运算,可以自动转换为基本数据类型,再进行计算