日期类型使用
-
在开发应用程序时,经常需要处理与时间相关的数据,比如记录用户的注册时间、订单的创建时间、会议的安排时间等。Java 提供了多种日期和时间的处理方式,以便开发者能够方便地操作这些数据。
Date类
-
Date 类位于 java.util 包中,表示特定的瞬间,精确到毫秒。使用时需要导包。
-
无参构造方法:
-
new Date(),创建一个表示当前时间的 Date 对象。
-
Date aa = new.Date();
-
未指定日期时默认为当前日期
-
-
直接打印的结果可能看不懂,所以需要加上本地的toString方法
-
System.out.println(aa.toLocaleString); //2024-1-1
-
-
-
带参构造方法:
-
new Date(long date),使用给定的毫秒值创建一个 Date 对象。
-
Date dd = new Date(2222222222222L); System.out.println(dd.toLocaleString());
-
结果为从1970-1-1日开始2222222222222毫秒之后的时间
-
-
常用方法
-
获取时间戳:getTime(),返回自1970年1月1日00:00:00 GMT以来的毫秒数。
-
获取年月日:
-
getYear():返回年份,注意返回的是从1900年开始的年份,需要加上1900。
-
getMonth():返回月份,注意月份从0开始(0表示1月,11表示12月)。
-
getDate():返回月份中的日子(1-31)。
-
getHours():返回小时(0-23)。
-
getMinutes():返回分钟(0-59)。
-
getSeconds():返回秒(0-59)。
-
// 创建一个表示当前时间的 Date 对象 Date currentDate = new Date(); System.out.println("当前时间: " + currentDate); // 获取时间戳 long timestamp = currentDate.getTime(); System.out.println("时间戳: " + timestamp); // 设置时间戳 Date customDate = new Date(1609459200000L); // 2021-01-01 00:00:00 System.out.println("自定义时间: " + customDate); // 获取年份 int year = currentDate.getYear() + 1900; // 从1900年开始 System.out.println("年: " + year); // 获取月份 int month = currentDate.getMonth() + 1; // 月份从0开始 System.out.println("月: " + month); // 获取日期 int day = currentDate.getDate(); System.out.println("日: " + day); // 获取小时 int hour = currentDate.getHours(); System.out.println("小时: " + hour); // 获取分钟 int minute = currentDate.getMinutes(); System.out.println("分钟: " + minute); // 获取秒 int second = currentDate.getSeconds(); System.out.println("秒: " + second);
-
案例:计算两人的年龄差
Date w = new Date(2006-1900,4-1,7); Date l = new Date(2008-1900,7-1,15); long a = w.getTime(); long b = l.getTime(); long c = b-a; long tt = c/1000/60/60/24; System.out.println("相差"+tt+"天");
LocalDate 类
-
虽然 Date 类可以满足基本的日期处理需求,但它有一些不足之处,比如之后与数据库的联接上用处不大。
-
Java 8 引入了 java.time 包,提供了更加现代化和易用的日期时间处理类,如 LocalDate、LocalDateTime 等。
-
创建LocalDate对象
-
LocalDate.now():获取当前日期。
-
LocalDate.of(int year, int month, int dayOfMonth):根据指定的年月日创建,LocalDate 对象。
-
-
常用方法
-
getYear():获取年份。
-
getMonthValue():获取月份(1-12)。
-
getDayOfMonth():获取月份中的日子(1-31)。
-
// 获取当前日期 LocalDate currentDate = LocalDate.now(); System.out.println("当前日期: " + currentDate); // 创建指定日期 LocalDate customDate = LocalDate.of(2023, 10, 1); System.out.println("自定义日期: " + customDate); // 获取年份 int year = currentDate.getYear(); System.out.println("年: " + year); // 获取月份 int month = currentDate.getMonthValue(); System.out.println("月: " + month); // 获取日期 int day = currentDate.getDayOfMonth(); System.out.println("日: " + day);
SimpleDateFormat日期格式化
-
在处理日期和时间时,经常需要将日期对象转换为字符串,或将字符串解析为日期对象。
-
SimpleDateFormat 提供了强大的功能来实现这些需求,使得日期的格式化和解析变得非常简单。
-
SimpleDateFormat 的构造方法需要一个模式字符串,该字符串定义了日期和时间的格式。常见的模式字符
包括:
-
y:年
-
M:月
-
d:日
-
H:小时
-
m:分钟
-
s:秒
-
-
常用方法
-
格式化日期:format(Date date),将 Date 对象转换为字符串。
-
解析日期:parse(String source),将字符串解析为 Date 对象。
-
//创建 SimpleDateFormat 对象,定义日期格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
格式化日期
//创建一个表示当前时间的 Date 对象 Date currentDate = new Date(); System.out.println("当前时间: " + currentDate); //创建 SimpleDateFormat 对象,定义日期格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //将 Date 对象格式化为字符串 String formattedDate = sdf.format(currentDate); System.out.println("格式化后的日期: " + formattedDate);
-
解析日期
//定义日期字符串 String dateString = "2023-10-01 12:30:45"; //创建 SimpleDateFormat 对象,定义日期格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { //将字符串解析为 Date 对象 Date parsedDate = sdf.parse(dateString); System.out.println("解析后的日期: " + parsedDate); } catch (ParseException e) { e.printStackTrace(); }
Java中的集合
-
集合(Collection)是存储多个元素的对象,它们提供了一种方便的方式来管理和操作一组数据。集合的主要优点包括:
-
灵活性:集合可以动态地增加或减少元素,不需要预先确定大小。
-
方便性:集合提供了丰富的操作方法,如添加、删除、查找等。
-
-
List 是一个有序的集合,允许重复的元素。常用的是ArrayList
//定义一个 ArrayList List<String> list = new ArrayList > ();
-
常用方法
-
add(E e):将指定的元素添加到列表的末尾。
-
List<String> list = new ArrayList > (); list.add("Apple"); list.add("Banana"); list.add("Cherry");
-
get(int index):返回指定位置的元素。
-
List<String> list = new ArrayList > (); list.add("Apple"); list.add("Banana"); list.add("Cherry"); //获取指定位置的元素 String fruit = list.get(1); System.out.println("获取的元素: " + fruit);
-
-
remove(int index):删除指定位置的元素。
-
remove(Object o):删除列表中第一次出现的指定元素。
-
List<String> list = new ArrayList > (); list.add("Apple"); list.add("Banana"); list.add("Cherry"); // 删除指定位置的元素 list.remove(1); / 删除 "Banana" System.out.println("删除指定位置后的列表内容: " + list); // 删除指定元素 list.remove("Cherry"); System.out.println("删除指定元素后的列表内容: " + list);
-
contains(Object o):检查列表是否包含指定的元素。
-
List<String> list = new ArrayList > (); list.add("Apple"); list.add("Banana"); list.add("Cherry"); // 检查元素是否存在 boolean containsBanana = list.contains("Banana"); System.out.println("列表是否包含 Banana: " + containsBanana);
-
size():返回列表中元素的数量。
-
List<String> list = new ArrayList > (); list.add("Apple"); list.add("Banana"); list.add("Cherry"); // 获取列表的长度 int size = list.size(); System.out.println("列表的长度: " + size);
-
clear():移除列表中的所有元素。
-
List<String> list = new ArrayList > (); list.add("Apple"); list.add("Banana"); list.add("Cherry"); System.out.println("清空前的列表内容: " + list); // 清空列表 list.clear(); System.out.println("清空后的列表内容: " + list);