data类
-
data表示特定的瞬间,精确到毫秒。Data类中的大部分方法都已经被Calendar类中的方法所取代。
-
时间单位:
- 1秒 = 1000毫秒
- 1毫秒 = 1000微秒
- 1微秒 = 1000纳秒
-
package Data; import java.util.Date; public class Test { public static void main(String[] args) { //1.创建Data对象 // 今天的时间 Date date1 = new Date(); System.out.println(date1.toLocaleString());// 返回当前时间 // 昨天 Date data2 = new Date(date1.getTime() - (60 * 60 * 24 * 1000)); System.out.println(data2.toLocaleString());// 返回昨天此时时间 //2.方法after before boolean b1 = date1.after(data2); System.out.println(b1); // true boolean b2 = date1.before(data2); System.out.println(b2); // false //比较 compareTo(); int d = date1.compareTo(data2); System.out.println(d); // 1 //比较是否相等 boolean equals = date1.equals(data2); System.out.println(equals);// false } }
Calendar类
-
Calendar提供了获取或设置各种日历字段的方法。
-
构造方法:
protected Calendar() // 由于修饰符是protected,所以无法直接创建该对象。
-
其他方法
-
static Calendar getlnstance() // 使用默认时区和区域获取日历
void set(int year,int month,int data,int hourofday,int minute,int second) // 设置日历的年、月、日、时、分、秒。
int get(int field) // 返回给定日历字段的值。字段比如年、月、日等
void setTime(Data data) // 用给定的Data设置此日历的时间。Data-Calendar
Data getTime() // 返回一个Data表示此日历的时间。Calendar-Date
void add(int field,int amount) // 按照日历的规则,给指定字段添加或减少时间量。
long getTimeInMillies() // 毫秒为单位返回该日历的值
-
package Calendar; import java.util.Calendar; public class Test01 { public static void main(String[] args) { // 1.创建Calendar对象(不能直接new) Calendar calendar = Calendar.getInstance(); System.out.println(calendar.getTime().toLocaleString());// 2021年8月4日 上午10:13:44 System.out.println(calendar.getTimeInMillis());// 1628043224383 // 2.获取时间信息 // 获取年份 int year = calendar.get(calendar.YEAR); // 获取月份 int month = calendar.get(calendar.MONTH); // 获取日 int day = calendar.get(calendar.DAY_OF_MONTH);// Date // 小时 int hour = calendar.get(calendar.HOUR_OF_DAY);//HOUR 十二小时制;HOUR_OF_DAY 二十四小时制 // 分钟 int minute = calendar.get(calendar.MINUTE); // 秒 int second = calendar.get(calendar.SECOND); System.out.println(year+"年"+(month+1)+"月"+day+"日"+hour+"时"+minute+"分"+second+"秒");// 2021年8月4日10时13分44秒 // 修改时间 Calendar calendar2 = Calendar.getInstance(); calendar2.set(calendar.DAY_OF_MONTH,6); System.out.println(calendar2.getTime().toLocaleString()); // 2021年8月6日 上午10:13:44 // 4. add方法修改时间 calendar2.add(calendar.HOUR,1);//增加一小时 System.out.println(calendar2.getTime().toLocaleString()); // 2021年8月6日 上午11:13:44 // 5.补充方法 int max = calendar2.getActualMaximum(Calendar.DAY_OF_MONTH); int min = calendar2.getActualMinimum(Calendar.DAY_OF_MONTH); System.out.println(max);// 31 System.out.println(min); // 1 } }
SimpleDateFormat
-
SimpleDateFormat是一个以语言环境有关的方式来格式化和解析日期的具体类。
-
进行格式化(日期 —> 文本)、解析(文本 —> 日期)。
-
常用的时间模式字母[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-00HaQKuG-1629187789796)(C:\Users\LXK\AppData\Roaming\Typora\typora-user-images\image-20210804102927264.png)]
-
package Calendar; import java.text.SimpleDateFormat; import java.util.Date; public class Test02 { public static void main(String[] args) throws Exception{ // 1.创建SimpleDateFormat对象 y:年 m: 月 // SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH-mm-ss"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd"); //2. 创建Date Date date = new Date(); // 3.格式化Date(把日期转成字符串) String format = simpleDateFormat.format(date); System.out.println(format); // 解析(把字符串转成日期) Date date2 = simpleDateFormat.parse("1990/05/01"); System.out.println(date2); } }
System类
-
System系统类,主要用于获取系统的属性数据和其他操作,构造方法私有的。
-
static void arraycopy(...) //复制数组
static long currentTimeMillis(); // 获取当前系统时间,返回的是毫秒值
static void gc(); // 建议JVM赶快启动垃圾回收器回收垃圾
static void exit(int status); // 退出jvm,如果参数是0表示正常退出jvm,非0表示异常退出jvm
package Calendar; import java.sql.SQLOutput; public class Test03 { public static void main(String[] args) { // 1.arraycopy:实现数组赋值 // src :源数组 // srcPos:从哪个位置开始复制 // dest :目标数组 // destPos :目标数组的位置 // length:复制的长度 int[] arr = {20,18,15,8,35,26,45,90}; int[] dest = new int[8]; System.arraycopy(arr,1,dest,0,5); for (int i = 0; i < dest.length; i++) { System.out.println(dest[i]); } //获取当前系统时间,返回的是毫秒值 System.out.println(System.currentTimeMillis()); long start =System.currentTimeMillis(); for (int i = 0; i <999999999 ; i++) { for (int j = 0; j <999999999 ; j++) { int trsult = i+j; } } long end = System.currentTimeMillis(); System.out.println("用时"+(end-start)); } }
总结
- 内部类:
- 在一个类的内部再定义一个完整的类。
- 成员内部类、静态内部类、局部内部类、匿名内部类。
- Object类:
- 所有类的直接或间接父类,可存储任何对象。
- 包装类:
- 基本数据类型所对应的引用数据类型,可以使Object统一所有数据。
- String类:
- 字符串是常量,创建之后不可改变,字面值保存在字符串池中,可以共享。
- BigDecimal:
- 可精确计算浮点数。
- Date
- 特定时间
- Calendar
- 日历
- SimpleDateFormat
- 格式化时间
- System
- 系统类
ct类:
- 所有类的直接或间接父类,可存储任何对象。
- 包装类:
- 基本数据类型所对应的引用数据类型,可以使Object统一所有数据。
- String类:
- 字符串是常量,创建之后不可改变,字面值保存在字符串池中,可以共享。
- BigDecimal:
- 可精确计算浮点数。
- Date
- 特定时间
- Calendar
- 日历
- SimpleDateFormat
- 格式化时间
- System
- 系统类