在java date-time api中的方法名称尽可能在类之间保持一致。
例如, now
方法返回当前时刻的日期或时间值。from
方法允许从一个类转换到另一个类。
下表列出了常用的前缀:
of
from
parse
format
get
is
with
plus
minus
to
at
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()
是一个静态工厂方法,用于从指定的参数派生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); } }
上面的代码生成以下结果。
要更改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()
返回对象的指定元素。
以下代码显示如何从 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()方法的一些示例。
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()
从带有附加信息的现有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()
通过添加指定的值来返回对象的副本。
以下代码显示如何使用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()
通过减去指定的值来返回对象的副本。
以下代码显示如何从本地日期对象中减去时间。
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()方法返回各种类的当前时间,例如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); } }
上面的代码生成以下结果。