Date类
java.util.Date
Date d = new Date();
d.toString;//获取当前时间:Sat Jun 13 21:43:08 CST 2021
d.toLocaleString;//获取当前的时间的本地时间格式2021-6-13 21:43:08
System.currentTimeMillis();//返回自1970-1-1 00:00:00 GMT以来此对象表示的毫秒数:1592056131151
//常用于计算运行时间
long startTime = System.currentTimeMillis();
for(int i = 0; i<100000; i++){
}
long endTime = System.currentTimeMillis();
System.out.println(endTime-startTime);
//727
java.sql.Date
java.sql.Date为java.util.Date的子类
Date d = new Date(1592056131151L);
d.toString;//获取当前的时间2021-06-13
//util->sql:
java.util.Date date = new Date(1592056131151L);//创建util.Date对象
Date date1 = (Date) date;//向下转型
Date date2 = new Date(date.getTime());//利用构造器
//sql->util:
java.util.Date date3 = d;
//string->sql.Date:
Date date4 = Date.valueOf("2021-6-13");
日期转化
DateFormat df = new SimpleDateFormat(pattern:"yyyy-MM-dd HH:mm:ss");
//SimpleDateFormat extends DateFormat(抽象类)
//String->Date
try{
Date d = df.parse(sourse:"2021-4-6 12:23:54");
System.out.println(d);
}catch(ParseException e){
e.printStackTrace();
}
//Sat Apr 06 12:23:54 CST 2021
//Date->String
String format = df.format(new Date());
System.out.println(format);//2021-06-14 14:34:51
Calendar
Calendar cal = new GregorianCalendar;
Calendar cal2 = Calendar.getInstance();
//GregorianCalendar extends Calendar(抽象类)
//get方法
cal.get(Calendar.YEAR);//2021
cal.get(Calendar.MONTH);//5
//set方法
cal.set(Calendar.YEAR,1990);
cal.set(Calendar.Month,3)
//String->Calendar:
java.sql.Date date = java.sql.Date.valueOf("2021-4-5");
//java.sql.Date->Calendar:
cal.setTime(date);
LocalDateTime
//get
LocalDateTime.getYear();//2021
LocalDateTime.getMonth();//JUNE
LocalDateTime.getMonthValue();//6
//with
LocalDateTime LocalDateTime2 = LocalDateTime.withMonth(8);
//加减操作
LocalDateTime LocalDateTime3 = LocalDateTime.plusMonths(8);
LocalDateTime LocalDateTime3 = LocalDateTime.minusMonths(8);
DateTimeFormatmatter
DateTimeFormatmatter df = DateTimeFormatmatter.ofPattern("yyyy-MM-dd hh:mm:ss");
//LocalDateTime->String:
LocalDateTime now = LocalDateTime.now();
String format = df.format(now);
System.out.println(format);//2021-06-15 03:22:25
//String->LocalDateTime
TemporalAccessow parse = df.parse(text:"2021-06-15 03:22:25");
Math类
Math.random();//生成随机数
Math.abs(-80);//80 绝对值
Math.ceil(9.1);//10 向下取整
Math.floor(9.9);//9 向上取整
Math.round(3.5);//4 四舍五入
Math.max(3,6);//6 取最大值
Math.min(3,6);//3 取最小值
String类
String
String s = new String("abcdefghijk");
s.length();//字符串的长度
s.isEmpty();//字符串是否为空
s.charAt(1);//b
s.equals(s1);//判断s与s1是否相同
s.compareTo(s1);//返回首个不一样的字母的ASCII码的差值
s.substring(3);//截取[3:]
s.substring(3,6);//截取[3:6)
s.concat("pppp");//连接
s.replace(oldChar:'p',newChar'q');//将所有的p换成q
//按指定方法分裂为数组
String s3 = "a-b-c-d";
String[] strs = s3.split('-');
Arrays.toString(strs);//[a,b,c,d]
s.toUpperCase();//转换为大写
s.toLowerCase();//转换为小写
//去除首尾空格
String s4 = " a b c ";
s4.trim();
String.valueOf(false);//转换为String类型
StringBuilder
StringBuilder sb = new StringBuffer("abcdefg");
//增
sb.append("hijk");
//删
sb.delete(3,6);//删除[3,6)上的字符
sb.deleteCharAt(6);//删除在第6位上的字符
//改
sb.insert(3,",");//在下标为3的位置上插入
sb.replace(3,5,"aaa");//在下标为[3,5)的位置进行替换
sb.setCharAt(3,'a');//替换下标为3的值
//查
sb.charAt(i);
//截取
sb.substring(2,4);//返回[2,4),一个新的String
区别
- String类是不可变类,一旦创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象销毁
- StringBuffer代表一个字符序列可变的字符串,一旦生成了最终的字符串,调用toString方法将其转变成String
- StringBuilder与StringBuffer类似,效率高,但是线程不安全