Java 分区是一种将 Java 对象分配到不同的内存区域的技术,它可以帮助程序员更好地管理内存,并有效地提高性能。
Java 分区的主要目的是将 Java 对象分配到不同的内存区域,以便更好地管理内存。它可以帮助程序员减少内存使用量,并有效地提高性能。
Java 分区可以将 Java 对象分配到不同的内存区域,这样就可以减少对象之间的竞争,并有效地改善性能。此外,它还可以帮助程序员减少内存使用量,因为它只会将必要的对象分配到特定的内存区域中。
Java 分区也可以帮助程序员更好地理解代码行为。通过将对象分配到不同的内存区域中,开发人员可以更好地了解代码如何工作,并有效地修复问题。
public class Partition { public static void main(String[] args) { // Create a partition object Partition partition = new Partition(); // Allocate objects to different partitions partition.allocateObjects(); } public void allocateObjects() { // Allocate objects to different partitions here } }
ZonedDateTime
类表示带有时区规则的日期时间。
ZonedDateTime
结合了 LocalDateTime
和 ZoneId
。
下面说明如何从 LocalDateTime
创建 ZonedDateTime
。
import java.time.LocalDateTime; import java.time.Month; import java.time.ZoneId; import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZoneId usCentral = ZoneId.of("America/Chicago"); LocalDateTime localDateTime = LocalDateTime.of(2014, Month.MAY, 21, 9, 30); System.out.println(localDateTime); ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, usCentral); System.out.println(zonedDateTime); } }
上面的代码生成以下结果。
由于夏令时更改,可能会发生时区中的本地时间轴上的间隙或重叠。
当时钟向前或向后移动一个小时时,会有时间上的间隙或重叠
如果时间落在间隙的中间,则时间向前移动与间隙相同的量。
如果时间落在重叠的中间,则时间有效。
默认情况下,使用较早版本。 withEarlierOffsetAtOverlap()和fromLaterOffsetAtOverlap()从ZonedDateTime让您选择所需的区域偏移量,如果时间落在重叠。以下代码显示ZonedDateTime,其中时间落在间隙和重叠中。
import java.time.LocalDateTime; import java.time.Month; import java.time.ZoneId; import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZoneId usChicago = ZoneId.of("America/Chicago"); // 2014-03-09T02:30 did not exist in America/Chicago time zone LocalDateTime ldt = LocalDateTime.of(2014, Month.MARCH, 9, 2, 30); ZonedDateTime zdt = ZonedDateTime.of(ldt, usChicago); System.out.println(zdt); // 2013-10-03T01:30 existed twice in America/Chicago time zone LocalDateTime ldt2 = LocalDateTime.of(2013, Month.NOVEMBER, 3, 1, 30); ZonedDateTime zdt2 = ZonedDateTime.of(ldt2, usChicago); System.out.println(zdt2.withEarlierOffsetAtOverlap()); System.out.println(zdt2.withLaterOffsetAtOverlap()); } }
上面的代码生成以下结果。
ZonedDateTime.of Local(LocalDateTime localDateTime,ZoneId zone,Zone Offset preferred Offset)从区域偏移创建ZonedDateTime。
如果指定的引用区域偏移无效,则使用重叠的较早区域偏移。
-07:00无效,则使用较早的偏移量-05:00。
import java.time.LocalDateTime; import java.time.Month; import java.time.ZoneId; import java.time.ZoneOffset; import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZoneId usChicago = ZoneId.of("America/Chicago"); ZoneOffset offset5 = ZoneOffset.of("-05:00"); ZoneOffset offset6 = ZoneOffset.of("-06:00"); ZoneOffset offset7 = ZoneOffset.of("-07:00"); LocalDateTime ldt = LocalDateTime.of(2012, Month.NOVEMBER, 4, 1, 30); ZonedDateTime zdt5 = ZonedDateTime.ofLocal(ldt, usChicago, offset5); ZonedDateTime zdt6 = ZonedDateTime.ofLocal(ldt, usChicago, offset6); ZonedDateTime zdt7 = ZonedDateTime.ofLocal(ldt, usChicago, offset7); System.out.println("With offset " + offset5 + ": " + zdt5); System.out.println("With offset " + offset6 + ": " + zdt6); System.out.println("With offset " + offset7 + ": " + zdt7); } }
上面的代码生成以下结果。
以下代码显示了如何将ZonedDateTime内容到本地和偏移量日期,时间和日期时间。
import java.time.LocalDateTime; import java.time.Month; import java.time.ZoneId; import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZonedDateTime zdt1 = ZonedDateTime.now(); System.out.println("Current zoned datetime:" + zdt1); LocalDateTime ldt = LocalDateTime.of(2012, Month.MARCH, 11, 7, 30); ZoneId usCentralZone = ZoneId.of("America/Chicago"); ZonedDateTime zdt2 = ZonedDateTime.of(ldt, usCentralZone); System.out.println(zdt2); } }
上面的代码生成以下结果。
当您添加一天的持续时间时,它将始终添加24小时,无论该天有多少小时(23,24或25小时)。
当从正常时间改变为日光节约时间或返回时,发生23和25小时。 当进入日光节约时间时,我们失去一个小时。 当离开日光节约时间,我们得到一个小时额外。
在2012-03-11T02:00,美国中部时区通过将时钟向前移动一小时进入日光节约,使2012-03-11的时间为23小时。
import java.time.Duration; import java.time.LocalDateTime; import java.time.Month; import java.time.ZoneId; import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZoneId usCentral = ZoneId.of("America/Chicago"); LocalDateTime ldt = LocalDateTime.of(2012, Month.MARCH, 10, 7, 30); ZonedDateTime zdt1 = ZonedDateTime.of(ldt, usCentral); Duration d1 = Duration.ofHours(24); ZonedDateTime zdt2 = zdt1.plus(d1); System.out.println(zdt2); } }
上面的代码生成以下结果。
当向ZonedDateTime添加一天的时间段时,日期组件将更改为第二天,而不会影响时间,无论该天有多少小时(23小时,24小时或25小时)。
当从正常时间改变为日光节约时间或返回时,发生23和25小时。 当进入日光节约时间时,我们失去一个小时。 当离开日光节约时间,我们得到一个小时额外。
在2012-03-11T02:00,美国中部时区通过将时钟向前移动一小时进入日光节约,使2012-03-11的时间为23小时。
import java.time.LocalDateTime; import java.time.Month; import java.time.Period; import java.time.ZoneId; import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZoneId usCentral = ZoneId.of("America/Chicago"); LocalDateTime ldt = LocalDateTime.of(2012, Month.MARCH, 10, 7, 30); ZonedDateTime zdt1 = ZonedDateTime.of(ldt, usCentral); Period p1 = Period.ofDays(1); ZonedDateTime zdt2 = zdt1.plus(p1); System.out.println(zdt2); } }
上面的代码生成以下结果。
Java日期时间查询所有datetime类都支持查询,查询是对信息的请求。我们可以从datetime对象获取日期时间组件,例如,我们可以从Lo...
Java流 -Java流操作常用的流操作如下列出。Distinct中间操作通过检查equals()方法返回由不同元素组成的流。filter中间操作返回与...
Java IO教程 -Java缓冲区读写缓冲区读取有两种方法从缓冲区读取数据:绝对位置相对位置使用四个版本重载的get()方法用于从缓冲区...
JavaFX教程 -JavaFX 文件选择器FileChooser允许用户导航文件系统并选择一个文件或文件夹。FileChooser类位于javafx.stage包中。...
Java脚本教程 -Java全局脚本每个Nashorn引擎使用多个脚本全局变量import javax.script.ScriptContext;import javax.script.Scrip...