关于人工智能:33-日期与时间类DateCalendarLocalDate等

32次阅读

共计 3308 个字符,预计需要花费 9 分钟才能阅读完成。

在 Java 中,咱们常常须要解决日期和工夫。Java 提供了一些类来帮忙咱们实现这些工作,如 DateCalendarLocalDateLocalTimeLocalDateTimeZonedDateTime等。咱们将别离介绍这些类,并给出相应的示例。

1. Date 类

Date类是 Java 提供的一个示意日期和工夫的类。然而,因为设计上的缺点,许多办法曾经被废除。因而,咱们更举荐应用 Calendar 类和 Java 8 中引入的新的日期工夫 API。

以下是 Date 类的一些罕用办法:

  • Date():结构一个示意以后日期和工夫的 Date 对象。
  • getTime():返回自 1970 年 1 月 1 日 0 时 0 分 0 秒以来的毫秒数。

2. Calendar 类

Calendar类是一个抽象类,它提供了一些办法来操作日期和工夫。Calendar类的子类如 GregorianCalendar,它示意公历日期。Calendar 类的罕用办法有:

  • getInstance():返回一个示意以后日期和工夫的 Calendar 对象。
  • get(int field):返回指定字段的值。
  • set(int field, int value):设置指定字段的值。
  • add(int field, int amount):给指定字段增加指定的值。
  • getTime():返回示意 Calendar 对象的日期和工夫的 Date 对象。

以下是 Calendar 类的一些常量:

  • YEAR:年
  • MONTH:月
  • DATE:日
  • HOUR:小时(12 小时制)
  • HOUR_OF_DAY:小时(24 小时制)
  • MINUTE:分
  • SECOND:秒

3. LocalDate、LocalTime、LocalDateTime 和 ZonedDateTime 类

Java 8 引入了新的日期工夫 API,包含 LocalDateLocalTimeLocalDateTimeZonedDateTime等类。这些类是不可变的,线程平安的,并且设计上更符合实际需要。

以下是这些类的一些罕用办法:

  • now():返回示意以后日期或工夫的对象。
  • of(...):依据指定的参数创建对象。
  • plusDays(long daysToAdd):返回减少指定天数后的对象。
  • minusDays(long daysToSubtract):返回减去指定天数后的对象。
  • plusHours(long hoursToAdd):返回减少指定小时数后的对象。
  • minusHours(long hoursToSubtract):返回减去指定小时数后的对象。
  • format(DateTimeFormatter formatter):应用指定的格式化器将对象格式化为字符串。

4. 示例

上面是一个应用日期和工夫类的示例:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class Main {public static void main(String[] args) {
        // 应用 Date 类
        Date date = new Date();
        System.out.println("以后日期和工夫:" + date);

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("格式化后的日期和工夫:" + sdf.format(date));

        // 应用 Calendar 类
        Calendar calendar = Calendar.getInstance();
        System.out.println("年:" + calendar.get(Calendar.YEAR));
        System.out.println("月:" + (calendar.get(Calendar.MONTH) + 1)); // 月份从 0 开始,所以须要加 1
        System.out.println("日:" + calendar.get(Calendar.DATE));
        System.out.println("小时:" + calendar.get(Calendar.HOUR_OF_DAY));
        System.out.println("分钟:" + calendar.get(Calendar.MINUTE));
        System.out.println("秒:" + calendar.get(Calendar.SECOND));

        // 应用 LocalDate、LocalTime 和 LocalDateTime 类
        LocalDate localDate = LocalDate.now();
        LocalTime localTime = LocalTime.now();
        LocalDateTime localDateTime = LocalDateTime.now();

        System.out.println("以后日期:" + localDate);
        System.out.println("以后工夫:" +localTime);
        System.out.println("以后日期和工夫:" + localDateTime);

        // 应用 ZonedDateTime 类
        ZonedDateTime zonedDateTime = ZonedDateTime.now();
        System.out.println("以后日期和工夫(带时区):" + zonedDateTime);

        // 格式化日期和工夫
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        System.out.println("格式化后的日期和工夫:" + localDateTime.format(formatter));

        // 日期和工夫的计算
        LocalDate tomorrow = localDate.plusDays(1);
        System.out.println("今天的日期:" + tomorrow);

        LocalTime oneHourLater = localTime.plusHours(1);
        System.out.println("一小时后的工夫:" + oneHourLater);

        LocalDateTime oneWeekLater = localDateTime.plusDays(7);
        System.out.println("一周后的日期和工夫:" + oneWeekLater);
    }
}

执行以上代码,将输入相似如下的后果:

以后日期和工夫:Tue May 30 15:23:45 CST 2023
格式化后的日期和工夫:2023-05-30 15:23:45
年:2023
月:5
日:30
小时:15
分钟:23
秒:45
以后日期:2023-05-30
以后工夫:15:23:45.123456789
以后日期和工夫:2023-05-30T15:23:45.123456789
以后日期和工夫(带时区):2023-05-30T15:23:45.123456789+08:00[Asia/Shanghai]
格式化后的日期和工夫:2023-05-30 15:23:45
今天的日期:2023-05-31
一小时后的工夫:16:23:45.123456789
一周后的日期和工夫:2023-06-06T15:23:45.123456789

以上就是 Java 罕用类库中的日期与工夫类的简介和示例。心愿这些内容能帮忙你了解和应用这些类。如果有任何疑难,请随时发问,我会尽力帮忙你。

举荐浏览:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

正文完
 0