Date:日期类:描述时间
注意1: java.sql.Date是java.util.Date的子类
我们学习的是java.util.Date
注意2: 很多方法都过时了:不影响使用
为什么过时:Date时间参数只有年月日时分秒星期 不易于实现国际化
过时怎么办:api推荐使用java.util.Calendar类来替换date类
注意3: 时间是连续的 ;也可以用毫秒来表示
date对象的毫秒值:获取的是date时间与1970-1-1 0:0:0(历元)之间的毫秒差
构造方法: 1 无参数: Date(); 获取当前时间的日期
// Date date = new Date(); //Mon Mar 14 23:39:13 CST 2022
2 参数是年月日 时分秒 注意:year-1900 month-1
Date(int year, int month, int date, int hrs, int min, int sec)
Date(int year, int month, int date)
// Date date11=new Date(2022-1900, 3-1, 14,11,17,12); //Mon Mar 14 11:17:12 CST 2022
3 参数是毫秒值:相对于历元的毫秒值:1970-1-1 0:0:0
Date(long time)
// Date date=new Date(3000); //Thu Jan 01 08:00:03 CST 1970
普通方法: 1 String toLocaleString() ;获取当前系统的日期形式
//System.out.println(date.toLocaleString()); //2022-3-14 23:55:56
2 boolean after(Date date);判断当前时间是否在参数时间之后
boolean before(Date date);判断当前时间是否在参数时间之前
3 int getXxx():获取指定的时间参数
void setXxx(int value):设置指定的时间参数
4 long getTime();获取当前date对象对应的毫秒值
void setTime(long time); 设置当前date对象的时间为参数毫秒值
SimpleDateFormat 日期格式化类: 实现日期与指定格式的字符串之间的转换
格式化: 把对象(Date对象)转化为指定格式的字符串
解析: 由指定格式的字符串 获取一个对象(Date对象)
构造方法:
SimpleDateFormat(String pattern) 通过参数字符串来指定各个时间参数
在SimpleDateFormat中指定一些特殊字符来表示时间参数
y-年
M-月
d-日
E-星期
H-时
m-分
s-秒
在pattern字符串(模式)中 通过上面的字符来表示时间参数
普通方法:
1:格式化方法:String format(Date date) 获取参数date对象的指定模式的字符串
2:解析方法:Date parse(String str)throws ParseException 由指定模式的字符串解析一个Date对象
八种包装类 : 为实现java完全面向对象的思想 为八种基本数据类型创建对应的八种包装类
byte Byte
short Short
int Integer
char Character
long Long
float Float
double Double
boolean Boolean
八种包装类作用:基本数据类型的封装
主要方法:实现 基本数据类型——包装类对象——字符串 之间的转换
主要学两个类:
Integer 类:所有类通用
Character类:特有方法
属性Integer类属性: System.out.println(Integer.MAX_VALUE); //最大值 System.out.println(Integer.MIN_VALUE); //最小值 System.out.println(Integer.SIZE); //bit位 System.out.println(Integer.TYPE); //int 对应的基本数据类型普通方法
Integer类方法:
1基本数据常量值——>包装类对象
构造方法:Integer(int value) ; //Integer i11=new Integer(11);
静态方法:static Integer valueOf(int i) ; //Integer i12=Integer.valueOf(12);
自动装箱:包装类引用=常量值; //Integer i13 = 13;
2包装类对象——>基本数据常量值
实例方法:int intValue(); // int n21=i11.intValue();
自动拆箱:基础数据类型变量=包装类对象; //int n22=i12;
3包装类对象——>字符串
实例方法:String toString() //String s31=i11.toString();
+ " " 拼接空字符串 //String s32=i12+"";
4字符串——>包装类对象
构造方法:Integer(String s) //Integer i41=new Integer(“111”);
静态方法:static Integer valueOf(String s) //Integer i42 =Integer.valueOf(“222”);
static Integer valueOf(String s,int radix) //Integer i43 =Integer.valueOf(“a”,16);
//把radix进制的字符串s 转换为10进制的数字
5基本数据常量值——>字符串
静态方法:static String toBinaryString(int i) : 获取参数int对应的2进制
// String s51=Integer.toBinaryString(i);
static String toHexString(int i) : 获取参数int对应的16进制
// String s51=toOctalString(i);
static String toOctalString(int i) : 获取参数int对应的8进制
// String s51=Integer.toHexString(i);
静态方法:static String toString(int i)
static String toString(int i, int radix) : 获取参数int对应的radix进制
// String s51=Integer.toString(i,12)
+ " " 拼接空字符串 String s55=i+"";
6字符串——>基本数据常量值
静态方法:static int parseInt(String s)
// int n61=Integer.parseInt(“23”); // 23
static int parseInt(String s, int radix)
// int n62=Integer.parseInt(“b”,16); //11
// NumberFormatException
面试题
//面试题:自动装箱时: 值在[-128,127]之间的相同值的Integer对象 使用的是同一个对象 // 值范围不在[-128,127]内的 每次自动装箱 都要创建新的对象 Integer i11=new Integer(11); Integer i12=new Integer(11); Integer i13=11; Integer i14=11; Integer i15=191; Integer i16=191; System.out.println(i11==i12); //false System.out.println(i11==i13); //false System.out.println(i13==i14); //true System.out.println(i15==i16); //false
public class Demo03BaoZhuang {
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
System.out.println(Integer.SIZE);
System.out.println(Integer.TYPE);
//1 基本数据常量值——>包装类对象
Integer i11 = new Integer(11); //1.1 构造方法:Integer(int value)
System.out.println(i11);
Integer i12 = Integer.valueOf(12); //1.2 静态方法:static Integer valueOf(int i)
System.out.println(i12);
Integer i13 = 13; //1.3 自动装箱:包装类引用=常量值;
System.out.println(i13);
//2 包装类对象——>基本数据常量值
int n21 = i11.intValue(); //实例方法:int intValue();
System.out.println(n21);
int n22 = i12; //自动拆箱:基础数据类型变量=包装类对象;
System.out.println(n22);
//3 包装类对象——>字符串
System.out.println("包装类对象——>字符串");
String s31 = i11.toString(); //````````````````````````````实例方法:String toString()
System.out.println(s31);
String s32 = i12 + ""; //+"":拼接空字符串
System.out.println(s32);
//4 字符串——>包装类对象
Integer i41 = new Integer("111");
System.out.println(i41);
Integer i42 = Integer.valueOf("222");
System.out.println(i42);
Integer i43 = Integer.valueOf("a", 16);
System.out.println(i43);
Object object = new Object();
System.out.println(object);
System.out.println(object.hashCode());
System.out.println(Integer.valueOf("e", 16));
//5 基本数据常量值——>字符串
System.out.println("基本数据常量值——>字符串");
int i = 20;
System.out.println(Integer.toBinaryString(i)); //int i=20;
String s51 = Integer.toBinaryString(i);
System.out.println(s51);
System.out.println(Integer.toOctalString(i));
System.out.println(Integer.toHexString(i));
System.out.println(Integer.toString(i, 12));
String s55 = i + "";
System.out.println(s55);
}
}
4 Character Character.isDigit© //判断是不是数字
Character.isLetter© //判断是不是单词字符
Character.isLetterOrDigit© //判断是不是单词字符或者数字字符
Character.isUpperCase© //确定指定字符是否为大写字母
c = Character.toLowerCase© //转换为小写
Character.isLowerCase©
c = Character.toUpperCase©
public class Demo04Character {
public static void main(String[] args) {
String str = "1qF&{|/.<你好";
change(str);
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
System.out.println(Character.isDigit(c)); //判断是不是数字
System.out.println(Character.isLetter(c)); //判断是不是单词字符
System.out.println(Character.isLetterOrDigit(c)); //判断是不是单词字符或者数字字符
}
}
//大写转换为小写 小写转换为大写 删除数字
public static String change(String str) {
String ss = "";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (Character.isUpperCase(c)) { //确定指定字符是否为大写字母
c = Character.toLowerCase(c); //转换为小写
} else if (Character.isLowerCase(c)) {
c = Character.toUpperCase(c);
} else if (Character.isDigit(c)) { //确定指定字符是否为数字
continue;
}
ss += c;
}
System.out.println(ss);
return ss;
}
}



