目录
(1)从1970年1月1号00:00:00到当前系统时间一共有多少毫秒
a)第一种方法:System.currentTimeMillis(),返回的是long类型
b)第二种方法:getTime()方法,返回的也是long类型
(5)使用add()方法增加/减少年、月、日(增加为正数,减少为负数)
(1)使用System类中的arraycopy()方法将指定源数组中的数组从指定位置复制到目标数组的指定位置
(2)使用append()方法可以在字符串后面连接各种类型的数据
(3)链式编程(append()):一行代码实现连接多种类型的数据
1、toString
在用类作为对象(比如自己创建Person类,并另外创建一个类使用该Person类作为对象)时,使用toString方法返回对象的字符串表示。一般打印输出结果就会默认调用Object类的toString方法,如果打印结果像“com.itcast.demo01Object.Person@16e8e0a”这样的地址值,说明没有重写toString方法,只需要在Person类中重写toString方法即可(使用 Alt + Insert 快捷键)。
2、Date (跟日期有关)
(1)从1970年1月1号00:00:00到当前系统时间一共有多少毫秒
a)第一种方法:System.currentTimeMillis(),返回的是long类型
System.out.println("从1970年1月1号00:00:00到当前时间一共" + System.currentTimeMillis() + "毫秒");
打印结果:从1970年1月1号00:00:00到当前时间一共1598004305144毫秒
b)第二种方法:getTime()方法,返回的也是long类型
Date date = new Date();
long time = date.getTime();
System.out.println("从1970年1月1号00:00:00到当前时间一共" + time + "毫秒");
打印结果:从1970年1月1号00:00:00到当前时间一共1598004305144毫秒
(2)获取当前日期和时间
a)一行代码,获取当前日期和时间
System.out.println(new Date(System.currentTimeMillis()));
打印结果:Fri Aug 21 18:05:05 CST 2020
b) 无参构造方法,获取当前日期和时间
Date date = new Date();
System.out.println(date);
上面两行相当于:System.out.println(new Date());
打印结果:Fri Aug 21 18:05:05 CST 2020
(3)有参构造方法,获取指定的日期和时间
Date date = new Date(0L);//添加参数
System.out.println(date);
上面两行相当于:System.out.println(new Date(0L));//添加参数
打印结果:Thu Jan 01 08:00:00 CST 1970
3、DataFormat(日期与文本相互转换)
(1)format()方法,把日期格式转化为文本
(2)parse()方法,把文本解析为日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
Date date = new Date();
System.out.println(date);//Sun Aug 16 15:25:18 CST 2020
//日期格式化为文本
String f = sdf.format(date);
System.out.println(f);//2020年08月16日 15时25分18秒
//文本解析为日期
Date p = sdf.parse(f);
System.out.println(p);//Sun Aug 16 15:25:18 CST 2020
4、Calendar(跟日历有关)
(1)使用getTime()方法获取当前日期和时间
//使用默认时区和语言环境获得一个日历
Calendar c = Calendar.getInstance();
Date time = c.getTime();
System.out.println(time);
打印结果:Fri Aug 21 21:27:39 CST 2020
(2)使用get()方法单独获取年、月、日
//使用默认时区和语言环境获得一个日历
System.out.println("===获取当前的年月日===");
Calendar c = Calendar.getInstance();
int year1 = c.get(Calendar.YEAR);//获取年
System.out.println("年:" + year1);
int month1 = c.get(Calendar.MONTH);//获取月
System.out.println("月:" + month1);
int day1 = c.get(Calendar.DAY_OF_MONTH);//获取日
System.out.println("日:" + day1);
int day2 = c.get(Calendar.DATE);//获取日
System.out.println("日:" + day2);
打印结果:
===获取当前的年月日===
年:2020
月:7
日:21
日:21
(3)使用set()方法重新设置年、月、日(单独设置)
System.out.println("===重新设置年月日(单独设置)===");
//使用默认时区和语言环境获得一个日历
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR,1999);//设置为1999年
int year2 = c.get(Calendar.YEAR);//获取年
System.out.println("年:" + year2);
c.set(Calendar.MONTH,04);//设置为4月
int month2 = c.get(Calendar.MONTH);//获取月
System.out.println("月:" + month2);
c.set(Calendar.DATE,9);//设置为9日
int day3 = c.get(Calendar.DATE);//获取日
System.out.println("日:" + day3);
打印结果:
===重新设置年月日(单独设置)===
年:1999
月:4
日:9
(4)使用set()方法重新设置年、月、日(整体设置)
System.out.println("===重新设置年月日(整体设置)===");
//使用默认时区和语言环境获得一个日历
Calendar c = Calendar.getInstance();
c.set(8888,8,8);//设置年月日
System.out.println("年:"+c.get(Calendar.YEAR));//获取年
System.out.println("月:"+c.get(Calendar.MONTH));//获取月
System.out.println("日:"+c.get(Calendar.DATE));//获取日
打印结果:
===重新设置年月日(整体设置)===
年:8888
月:8
日:8
(5)使用add()方法增加/减少年、月、日(增加为正数,减少为负数)
System.out.println("===增加年月日的值===");
//使用默认时区和语言环境获得一个日历
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR,10);//增加10年(减少用-10)
c.add(Calendar.MONTH,2);//增加2个月(减少用-2)
c.add(Calendar.DATE,2);//增加2天(减少用-2)
System.out.println("年:"+c.get(Calendar.YEAR));//获取年
System.out.println("月:"+c.get(Calendar.MONTH));//获取月
System.out.println("日:"+c.get(Calendar.DATE));//获取日
打印结果:
===增加年月日的值===
年:2030
月:10
日:23
5、System(与系统有关)
(1)使用System类中的arraycopy()方法将指定源数组中的数组从指定位置复制到目标数组的指定位置
//定义源数组
int[] array1 = {1,2,3,4,5};
//定义目标数组
int[] array2 = {6,7,8,9,10};
System.out.println("复制前array1:"+ Arrays.toString(array1));
System.out.println("复制前array2:"+ Arrays.toString(array2));
System.out.println("==================");
//使用System类中的arraycopy把源数组的前3个元素复制到目标数组的第3个位置上
//参数含义:(源数组,源数组中的起始位置,目标数组,目标数组中数据的起始位置,要复制源数组中元素的数量)
System.arraycopy(array1,0,array2,0,3);
System.out.println("复制后array1:"+ Arrays.toString(array1));
System.out.println("复制后array2:"+ Arrays.toString(array2));
打印结果:
复制前array1:[1, 2, 3, 4, 5]
复制前array2:[6, 7, 8, 9, 10]
==================
复制后array1:[1, 2, 3, 4, 5]
复制后array2:[1, 2, 3, 9, 10]
6、StringBuilder(字符串连接)
通过“+”也可以实现字符串的连接,但是这种方式效率非常低,并且每执行一次都会创建一个String对象,既耗时又浪费空间。而StringBuilder就可以避免这种问题的发生。
(1)无参构造和有参构造
StringBuilder sb1 = new StringBuilder();
System.out.println("无参构造:" + sb1);
StringBuilder sb2 = new StringBuilder("Hello World");
System.out.println("有参构造:" + sb2);
打印结果:
无参构造:
有参构造:Hello World
(2)使用append()方法可以在字符串后面连接各种类型的数据
StringBuilder sb1 = new StringBuilder();//使用无参构造
sb1.append("zhangsan");//添加字符串
System.out.println("sb1:" + sb1);
sb1.append(123);//添加整数
System.out.println("sb1:" + sb1);
sb1.append(3.14);//添加小数
System.out.println("sb1:" + sb1);
sb1.append('中');//添加单个字符
System.out.println("sb1:" + sb1);
打印结果:
sb1:zhangsan
sb1:zhangsan123
sb1:zhangsan1233.14
sb1:zhangsan1233.14中
(3)链式编程(append()):一行代码实现连接多种类型的数据
StringBuilder sb2 = new StringBuilder("Hello World");
System.out.println("有参构造:" + sb2);
sb2.append("zhangsan").append(3.14).append('中').append(123456);
System.out.println("sb2:" + sb2);
打印结果:
有参构造:Hello World
sb2:Hello Worldzhangsan3.14中123456
(4)StringBuilder和String的相互转化
//String->StringBuilder:可以使用StringBuilder的构造方法
//StringBuilder->String:可以使用StringBuilder中的toString方法
String str1 = "Hello";
System.out.println("str1:" + str1);
//String->StringBuilder
StringBuilder sb = new StringBuilder(str1);
sb.append("World");
System.out.println("sb:" + sb);
//StringBuilder->String
String str2 = sb.toString();
System.out.println("str2:" + str2);
打印结果:
str1:Hello
sb:HelloWorld
str2:HelloWorld
7、Integer
(1)基本类型->字符串 / 字符串->基本类型
//基本类型->字符串
int i = 100;
String s1 = i + "";
System.out.println(s1 + 200);//100200,而不是300
String s2 = Integer.toString(100);
System.out.println(s2 + 200);//100200,而不是300
String s3 = String.valueOf(100);
System.out.println(s3 + 200);//100200,而不是300
//字符串->基本类型
int i1 = Integer.parseInt(s1);
System.out.println(i1 + 50);//150,而不是10050