面向对象第三节---日期

日期类型使用

  • 在开发应用程序时,经常需要处理与时间相关的数据,比如记录用户的注册时间、订单的创建时间、会议的安排时间等。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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值