举报投诉联系我们 手机版 热门标签 名动网
您的位置:名动网 > java 分区 Java 分区日期时间

java 分区 Java 分区日期时间

2023-03-12 10:20 Java教程

java 分区 Java 分区日期时间

java 分区

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 

    } 
}

Java 分区日期时间

Java日期时间 - Java分区日期时间

分区日期时间

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让您选择所需的区域偏移量,如果时间落在重叠。

例2

以下代码显示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());

  }
}

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

例3

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);

  }
}

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

例4

以下代码显示了如何将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 分区 Java 分区日期时间全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 名动网 mdwl.vip 版权所有 联系我们