一、Calendar类
package com.qf.chapter_01;
import java.util.Calendar;
public class TestCalendar {
public static void main(String[] args) {
//创建Calendar对象
Calendar calendar=Calendar.getInstance();//得到当前时间
System.out.println(calendar.getTime().toLocaleString());//转换为Date类的特定格式
//获取时间信息
int year=calendar.get(Calendar.YEAR);//获取年份
int month=calendar.get(Calendar.MONTH);//月份:0~11
int day=calendar.get(Calendar.DAY_OF_MONTH);//日期
int hour=calendar.get(Calendar.HOUR_OF_DAY);//24小时制;HOUR12小时制
int minute=calendar.get(Calendar.MINUTE);//分钟
int second =calendar.get(Calendar.SECOND);//秒钟
System.out.println(year+"年"+(month+1)+"月"+day+"日"+hour+":"+minute+":"+second);
//修改时间set
Calendar calendar2=Calendar.getInstance();
calendar2.set(Calendar.DAY_OF_MONTH, 18);//得到昨天
System.out.println(calendar2.getTime().toLocaleString());
//add方法修改时间
calendar2.add(Calendar.HOUR, 1);//加上一个小时
System.out.println(calendar2.getTime().toLocaleString());
//
int max=calendar2.getActualMaximum(Calendar.DAY_OF_MONTH);//获取当前月份最大天数
int min=calendar2.getActualMinimum(Calendar.DAY_OF_MONTH);
System.out.println(max+" "+min);
}
}
SimpleDateFormat SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类;
进行格式化:日期——文本; 解析:文本——日期。
常用的时间模式字母:
字母 日期或时间 示例
y 年 2021
M 年中月份 08
d 月中天数 10
H 1天中小时数(0—-23) 22
m 分钟 16
s 秒 59
S 毫秒 368
package com.qf.chapter_01;
import java.util.Date;
import java.text.SimpleDateFormat;
public class TestSimpleDateFormat {
public static void main(String[] args) throws Exception{
//创建SimpleDateFormat对象
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
//创建Date
Date date=new Date();
//格式化date(把日期转换成字符串)
String str=simpleDateFormat.format(date);
System.out.println(str);
//解析(把字符串转换成日期)
Date date2=simpleDateFormat.parse("2020年08月20日15:45:35");
System.out.println(date2);
}
}
二、String类
1、字符串是常量,创建之后不可改变; 2、字符串字面值存储在字符串池中,可以共享; 3、创建方式:
(1)String s="hello"; 产生一个对象,字符串池中存储;
(2)String s=new String("hello"); 产生两个对象,堆、池各存储一个。
4、字符串的比较
String s1="hello";
String s2="hello";
System.out.println(s1.equals(s2));
//得到true
public class Main{
public static void main(String args[]){
String s="this is a text";
//将单词单独获取出来
String []str =s.split(" ");
for(String i:str){
System.out.println(i);
}
//将text替换为practice
String s1=s.replace("text","practice");
System.out.println(s1);
//在text前面加上easy
String s2=s.replace("text","easy text");
System.out.println(s2);
//将每个单词的首字母转换成大写
for(int i=0;i<str.length;i++){
char first=str[i].charAt(0);
char upperfirst=Character.toUpperCase(first);
String arr=upperfirst+str[i].substring(1);
System.out.println(arr);
}
}
}
5、StringBuffer和StringBuilder
(1) StringBuffer;可变长字符串,JDK1.0提供,运行效率慢,线程安全; (2)StringBuilder:可变长字符串,JDK5.0提供,运行效率快,线程不安全。 (3)运行效率:StringBuilder > StringBuffer >String
package com.qf.chapter_01;
public class TestString {
public static void main(String[] args) {
StringBuffer sBuffer=new StringBuffer();//StringBuilder操作一样
// append();追加
sBuffer.append("java");
System.out.println(sBuffer.toString());//再转换回字符串输出
// insert(); 添加
sBuffer.insert(0, "我学");//在第一个前添加
System.out.println(sBuffer.toString());
// replace();
sBuffer.replace(0, 2, "i study ");// 含头不含尾
System.out.println(sBuffer.toString());
// delete();
sBuffer.delete(0, 8);//注意空格、每一个字符都是一个单独的元素;含头含尾
System.out.println(sBuffer.toString());
}
}