小码哥的IT人生

Java 日期时间方法

Java基础 2022-06-06 10:40:14小码哥的IT人生shichen

Java日期时间方法

 

在 Java Date-Time API 中的方法名称尽可能在类之间保持一致。

例如, now 方法返回当前时刻的日期或时间值。from方法允许从一个类转换到另一个类。

下表列出了常用的前缀:

  1. of
    静态工厂方法
    工厂方法创建一个实例并验证输入参数
  2. from
    静态工厂方法将输入参数转换为目标类的实例。
  3. parse
    静态工厂方法
    解析输入字符串以创建目标类的实例。
  4. format
    实例方法
    格式化临时对象以产生字符串。
  5. get
    实例方法
    返回目标对象的一部分。
  6. is
    实例方法
    查询目标对象。
  7. with
    实例方法
    返回一个元素已更改的目标对象的副本。
  8. plus
    实例方法
    返回具有添加的时间量的对象的副本。
  9. minus
    实例方法
    返回具有减去时间量的对象的副本。
  10. to
    实例方法
    将此对象转换为另一种类型。
  11. at
    实例方法
    将此对象与另一个对象组合。

of()方法

Java 日期时间 API 的 XXX()方法用于创建对象。

以下代码显示了如何创建 LocalDate 类的对象:

import java.time.LocalDate;
import java.time.Month;
public class Main {
  public static void main(String[] args) {
    LocalDate localDate1  = LocalDate.of(2014, 5, 21);
    System.out.println(localDate1);
    LocalDate localDate2  = LocalDate.of(2014, Month.MARCH, 4);
    System.out.println(localDate2);
    LocalDate localDate3  = LocalDate.ofEpochDay(2014);
    System.out.println(localDate3);
    LocalDate localDate4  = LocalDate.ofYearDay(2014, 39);
    System.out.println(localDate4);
  }
}

上面的代码生成以下结果。

from()方法

from()是一个静态工厂方法,用于从指定的参数派生 datetime 对象。

of()不同, from()需要对指定参数进行数据转换。

以下代码显示如何从 LocalDateTime 派生 LocalDate:

import java.time.LocalDate;
import java.time.LocalDateTime;
public class Main {
  public static void main(String[] args) {
    LocalDateTime  localDateTime = LocalDateTime.of(2015, 6,  21,  13, 40);
    System.out.println(localDateTime);
    LocalDate localDate  = LocalDate.from(localDateTime);
    System.out.println(localDate);
  }
}

上面的代码生成以下结果。

with()方法

要更改 datetime 对象中的字段,我们可以使用带有前缀的方法。

withXXX()方法返回一个对象的副本,指定的字段已更改,因为 Date Time API 中的大多数对象都是不可变的。

以下代码显示如何从另一个 LocalDate 获取 LocalDate,并更改年份:

import java.time.LocalDate;
import java.time.Month;
public class Main {
  public static void main(String[] args) {
    LocalDate localDate1  = LocalDate.of(2014, Month.MAY,  2);
    System.out.println(localDate1);
    LocalDate localDate2  = localDate1.withYear(2015);
    System.out.println(localDate2);
    LocalDate localDate3  = localDate1.withYear(2014).withMonth(7);
    System.out.println(localDate3);
  }
}

上面的代码生成以下结果。

getXXX()方法

getXXX()返回对象的指定元素。

以下代码显示如何从 LocalDate 对象获取年,月和日:

import java.time.LocalDate;
import java.time.Month;
public class Main {
  public static void main(String[] args) {
    LocalDate localDate = LocalDate.of(2014, 6, 21);
    int year = localDate.getYear();
    System.out.println(year);
    Month month = localDate.getMonth();
    System.out.println(month);
    int day = localDate.getDayOfMonth();
    System.out.println(day);
  }
}

上面的代码生成以下结果。

toXXX()方法

toXXX()将对象转换为相关类型。

以下代码显示了使用 toXXX() 方法的一些示例。

import java.time.LocalDate;
public class Main {
  public static void main(String[] args) {
    LocalDate localDate = LocalDate.of(2014, 6, 21);
    long days = localDate.toEpochDay();
    System.out.println(days);
  }
}

上面的代码生成以下结果。

atXXX()方法

atXXX()从带有附加信息的现有 datetime 对象创建一个新的 datetime 对象。

以下代码在方法中使用以向日期对象添加附加信息。

import java.time.LocalDate;
import java.time.LocalDateTime;
public class Main {
  public static void main(String[] args) {
    LocalDate localDate  = LocalDate.of(2014, 6, 21);
    System.out.println(localDate);
    LocalDateTime  localTime1 = localDate.atStartOfDay();
    System.out.println(localTime1);
    LocalDateTime  localTime2 = localDate.atTime(16, 21);
    System.out.println(localTime2);
  }
}

上面的代码生成以下结果。

以下代码显示了如何使用支持构建器模式来构建本地日期的atXXX()方法:

import java.time.LocalDate;
import java.time.Year;
public class Main {
  public static void main(String[] args) {
    LocalDate localDate  = Year.of(2014).atMonth(6).atDay(21);
    System.out.println(localDate);
  }
}

上面的代码生成以下结果。

plusXXX()方法

plusXXX()通过添加指定的值来返回对象的副本。

以下代码显示如何使用plus方法向本地添加更多时间日期对象。

import java.time.LocalDate;
public class Main {
  public static void main(String[] args) {
    LocalDate localDate  = LocalDate.of(2014, 6, 21);
    LocalDate localDate1  = localDate.plusDays(5);
    System.out.println(localDate1);
    LocalDate localDate2  = localDate.plusMonths(3);
    System.out.println(localDate2);
    LocalDate localDate3  = localDate.plusWeeks(3);
    System.out.println(localDate3);
  }
}

上面的代码生成以下结果。

minusXXX()方法

minusXXX()通过减去指定的值来返回对象的副本。

以下代码显示如何从本地日期对象中减去时间。

import java.time.LocalDate;
public class Main {
  public static void main(String[] args) {
    LocalDate localDate  = LocalDate.of(2014, 6, 21);
    LocalDate localDate1  = localDate.minusMonths(5);
    System.out.println(localDate1);
    LocalDate localDate2  = localDate.minusWeeks(3);
    System.out.println(localDate2);
  }
}

上面的代码生成以下结果。

now()方法

now() 方法返回各种类的当前时间,例如 LocalDate,LocalTime,LocalDateTime,ZonedDateTime。

以下代码显示如何使用 now()方法返回当前日期和时间。

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZonedDateTime;
public class Main {
  public static void main(String[] args) {
    LocalDate localDate = LocalDate.now();
    System.out.println(localDate);
    LocalTime  localTime  = LocalTime.now();
    System.out.println(localTime);
    LocalDateTime  dateTime  = LocalDateTime.now();
    System.out.println(dateTime);
    ZonedDateTime dateTimeWithZone  = ZonedDateTime.now();
    System.out.println(dateTimeWithZone);
  }
}

上面的代码生成以下结果。

版权所有 © 小码哥的IT人生
Copyright © phpcodeweb All Rights Reserved
ICP备案号:苏ICP备17019232号-2  

苏公网安备 32030202000762号

© 2021-2024