10-12 程宗武
10-11 时间日期类
1、Date
java.util.Date 表示特定的时间,用来表示时间和日期,提供一系列操作。
成员方法
Method | type | Description |
---|---|---|
equals(Object obj) | boolean | 比较两个日期相等(底层实际上调用了geTime()方法比较两个日期的时间戳是否相等) |
getTime() | long | 自1970年1月1日以来,以此日期为准的00:00:00 GMT的毫 秒数 |
setTime(lone time) | void | 设置此 Date对象以表示1970年1月1日00:00:00 GMT后的 time毫秒的时间点 |
long timeMillis = System.currentTimeMillis();
Date date1 = new Date(timeMillis);
Date date2 = new Date(timeMillis);
System.out.println(date1.equals(date2));//true 比较两个日期的时间戳是否相等
Date实例的毫秒值是可以更改的
Date date = new Date();
System.out.println(date); //Mon Oct 12 21:45:05 GMT+08:00 2020
date.setTime(1000L);
System.out.println(date); //Thu Jan 01 08:00:01 GMT+08:00 1970
2、Calendar
java.util.Calendar 是一个抽象类。可以为在某一特定时刻和日历字段之间的转换的方法,以及用于 操纵该日历的字段提供了方法, 时间上的瞬间可以用毫秒值表示,该值是从1970年1月1日00:00 00: 00.000 GMT
2、1 获取Calendar对象的方式
(1)通过子类获取
//1、通过子类
Calendar calendar1 = new GregorianCalendar();
//2、通过内部提供的实例方法
Calendar calendar2 = Calendar.getInstance();
(2)获取对应的日期的方法
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.YEAR));//fileds数组中存放了这个日期的所有信息,而常量Year对应的值就是数组下标为1的元素
(3)设置日期的对应方法(也可以调用clear()方法清除日历的字段值)
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.YEAR));//2020
calendar.set(Calendar.YEAR,1997);
System.out.println(calendar.get(Calendar.YEAR));//1997
(4)Calendar对象和Date对象互相转
Calendar calendar1 = new GregorianCalendar();
//Calendar转Date
Date time = calendar1.getTime();
System.out.println(time);
//Date转Calendar
Date date = new Date();
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(date);
System.out.println(calendar2);
3、DateFormat
java.text.DateFormat 是日期/时间格式化子类的抽象类。它可以将日期时间格式化和将字符串解析 为 Date
(1)格式化日期
//格式化日期
Date date = new Date();
String str = "yyyy年MM月dd日";
SimpleDateFormat dateFormat = new SimpleDateFormat(str);
String format = dateFormat.format(date);
System.out.println(format);//2020年10月12日
4、LocalDate(不可变的日期时间对象、线程安全)
java.time.LocalDate 是一个不可变( final 修饰)的日期时间对象,是线程安全的,表示日期,通常被 表示为年月日。也可以访问其他日期字段,例如日期,星期几和星
//获取LocalDate实例
LocalDate now = LocalDate.now();
System.out.println(now); //2020-10-12 不可变
LocalDate 类中还提供了在指定 LocalDate 基础上增加/减少指定时间的方法(负数代表减少)
LocalDate now = LocalDate.now();
System.out.println(now); //2020-10-12
LocalDate localDate = now.plusYears(10);
System.out.println(localDate); //2030-10-12
5、 LocalTime (和LocalDate类似)
6、 LocalDateTime (不可变的日期时间对象)
LocalDateTime 底层是一个 LocalDate + LocalTime 实现的,并且 LocalDateTime实例一旦创建,其内部的各项取值便不可更改。
二、File类概述
//计算出磁盘上指定文件夹的实际大小
@Test
public void test10() {
File file = new File("D:\\blog");
Long sum = fileSize(file);
System.out.println(sum);
}
public Long fileSize(File file) {
//初始化大小
long size = 0L;
//获取file里面的所有文件和文件夹的名称
String[] list = file.list();
//遍历该list数组
for (int i = 0; i < list.length; i++) {
//创建一个新的文件路径
String src = file.getAbsolutePath() + "\\" + list[i];
//创建一个新的File实例
File newFile = new File(src);
//如果是一个文件,则计算长度并返回
if (newFile.isFile()) {
size += newFile.length();
} else {
//如果不是,则继续遍历
size = size + fileSize(newFile);
}
}
return size;
}
近期评论