java.time.zone.ZoneRules.getTransitions()方法的使用及代码示例

x33g5p2x  于2022-02-05 转载在 其他  
字(4.9k)|赞(0)|评价(0)|浏览(116)

本文整理了Java中java.time.zone.ZoneRules.getTransitions()方法的一些代码示例,展示了ZoneRules.getTransitions()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZoneRules.getTransitions()方法的具体详情如下:
包路径:java.time.zone.ZoneRules
类名称:ZoneRules
方法名:getTransitions

ZoneRules.getTransitions介绍

[英]Gets the complete list of fully defined transitions.

The complete set of transitions for this rules instance is defined by this method and #getTransitionRules(). This method returns those transitions that have been fully defined. These are typically historical, but may be in the future.

The list will be empty for fixed offset rules and for any time-zone where there has only ever been a single offset. The list will also be empty if the transition rules are unknown.
[中]获取完全定义的转换的完整列表。
此规则实例的完整转换集由此方法和#getTransitionRules()定义。此方法返回已完全定义的转换。这些通常是历史性的,但可能是在未来。
对于固定偏移规则和任何只有一个偏移的时区,该列表将为空。如果转换规则未知,列表也将为空。

代码示例

代码示例来源:origin: ical4j/ical4j

private static void addTransitions(ZoneId zoneId, VTimeZone result, int rawTimeZoneOffsetInSeconds) throws ParseException {
  Map<ZoneOffsetKey, Set<ZoneOffsetTransition>> zoneTransitionsByOffsets = new HashMap<ZoneOffsetKey, Set<ZoneOffsetTransition>>();
  for (ZoneOffsetTransition zoneTransitionRule : zoneId.getRules().getTransitions()) {
    ZoneOffsetKey offfsetKey = ZoneOffsetKey.of(zoneTransitionRule.getOffsetBefore(), zoneTransitionRule.getOffsetAfter());
    Set<ZoneOffsetTransition> transitionRulesForOffset = zoneTransitionsByOffsets.computeIfAbsent(offfsetKey, k -> new HashSet<ZoneOffsetTransition>(1));
    transitionRulesForOffset.add(zoneTransitionRule);
  }
  for (Map.Entry<ZoneOffsetKey, Set<ZoneOffsetTransition>> e : zoneTransitionsByOffsets.entrySet()) {
    Observance observance = (e.getKey().offsetAfter.getTotalSeconds() > rawTimeZoneOffsetInSeconds) ? new Daylight() : new Standard();
    LocalDateTime start = Collections.min(e.getValue()).getDateTimeBefore();
    DtStart dtStart = new DtStart(start.format(DateTimeFormatter.ofPattern(DATE_TIME_TPL)));
    TzOffsetFrom offsetFrom = new TzOffsetFrom(e.getKey().offsetBefore);
    TzOffsetTo offsetTo = new TzOffsetTo(e.getKey().offsetAfter);
    observance.getProperties().add(dtStart);
    observance.getProperties().add(offsetFrom);
    observance.getProperties().add(offsetTo);
    for (ZoneOffsetTransition transition : e.getValue()) {
      RDate rDate = new RDate(new ParameterList(), transition.getDateTimeBefore().format(DateTimeFormatter.ofPattern(DATE_TIME_TPL)));
      observance.getProperties().add(rDate);
    }
    result.getObservances().add(observance);
  }
}

代码示例来源:origin: org.mnode.ical4j/ical4j

private static void addTransitions(ZoneId zoneId, VTimeZone result, int rawTimeZoneOffsetInSeconds) throws ParseException {
  Map<ZoneOffsetKey, Set<ZoneOffsetTransition>> zoneTransitionsByOffsets = new HashMap<ZoneOffsetKey, Set<ZoneOffsetTransition>>();
  for (ZoneOffsetTransition zoneTransitionRule : zoneId.getRules().getTransitions()) {
    ZoneOffsetKey offfsetKey = ZoneOffsetKey.of(zoneTransitionRule.getOffsetBefore(), zoneTransitionRule.getOffsetAfter());
    Set<ZoneOffsetTransition> transitionRulesForOffset = zoneTransitionsByOffsets.computeIfAbsent(offfsetKey, k -> new HashSet<ZoneOffsetTransition>(1));
    transitionRulesForOffset.add(zoneTransitionRule);
  }
  for (Map.Entry<ZoneOffsetKey, Set<ZoneOffsetTransition>> e : zoneTransitionsByOffsets.entrySet()) {
    Observance observance = (e.getKey().offsetAfter.getTotalSeconds() > rawTimeZoneOffsetInSeconds) ? new Daylight() : new Standard();
    LocalDateTime start = Collections.min(e.getValue()).getDateTimeBefore();
    DtStart dtStart = new DtStart(start.format(DateTimeFormatter.ofPattern(DATE_TIME_TPL)));
    TzOffsetFrom offsetFrom = new TzOffsetFrom(e.getKey().offsetBefore);
    TzOffsetTo offsetTo = new TzOffsetTo(e.getKey().offsetAfter);
    observance.getProperties().add(dtStart);
    observance.getProperties().add(offsetFrom);
    observance.getProperties().add(offsetTo);
    for (ZoneOffsetTransition transition : e.getValue()) {
      RDate rDate = new RDate(new ParameterList(), transition.getDateTimeBefore().format(DateTimeFormatter.ofPattern(DATE_TIME_TPL)));
      observance.getProperties().add(rDate);
    }
    result.getObservances().add(observance);
  }
}

代码示例来源:origin: ical4j/ical4j

private static void addTransitionRules(ZoneId zoneId, int rawTimeZoneOffsetInSeconds, VTimeZone result) {
  ZoneOffsetTransition zoneOffsetTransition = null;
  if (!zoneId.getRules().getTransitions().isEmpty()) {
    Collections.min(zoneId.getRules().getTransitions(),
        Comparator.comparing(ZoneOffsetTransition::getDateTimeBefore));

代码示例来源:origin: org.mnode.ical4j/ical4j

private static void addTransitionRules(ZoneId zoneId, int rawTimeZoneOffsetInSeconds, VTimeZone result) {
  ZoneOffsetTransition zoneOffsetTransition = null;
  if (!zoneId.getRules().getTransitions().isEmpty()) {
    Collections.min(zoneId.getRules().getTransitions(),
        Comparator.comparing(ZoneOffsetTransition::getDateTimeBefore));

代码示例来源:origin: net.time4j/time4j-olson

List<DaylightSavingRule> rules = new ArrayList<>();
for (ZoneOffsetTransition zot : zoneRules.getTransitions()) {
  Instant instant = zot.getInstant();
  long posixTime = instant.getEpochSecond();

相关文章