Java 日期时间方法

Java 日期时间方法

Java日期时间方法在 Java Date-Time API 中的方法名称尽可能在类之间保持一致。例如, now 方法返回当前时刻的日期或时间值。from方法允许从一个类转换到另一个类。下表列出了常用的前缀:of 静态工厂方法 工厂方法创建一个实例并验证输入参数 from 静态工厂方法将输入参数转换为目标类的实例。parse 静态工厂方法 解析输入字符串以创建目标类的实例。format 实例方法 格式化临时对象以产生字符串。get 实例方法 返回目标对象的一部分。is 实例方法 查询目标对象。with 实例方法 返回一个元素已更改的目标对象的副本。plus 实例方法 返回具有添加的时间量的对象的副本。minus 实例方法 返回具有减去时间量的对象的副本。to 实例方法 将此对象转换为另一种类型。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);

}

}

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