java.time.ZonedDateTime.minusMonths()方法的使用及代码示例

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

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

ZonedDateTime.minusMonths介绍

[英]Returns a copy of this ZonedDateTime with the specified period in months subtracted.

This operates on the local time-line, LocalDateTime#minusMonths(long) to the local date-time. This is then converted back to a ZonedDateTime, using the zone ID to obtain the offset.

When converting back to ZonedDateTime, if the local date-time is in an overlap, then the offset will be retained if possible, otherwise the earlier offset will be used. If in a gap, the local date-time will be adjusted forward by the length of the gap.

This instance is immutable and unaffected by this method call.
[中]返回此ZoneDateTime的副本,并减去指定的期间(以月为单位)。
这在本地时间线上运行,本地日期时间#减去本地日期时间的个月(长)。然后将其转换回ZoneDateTime,使用分区ID获取偏移量。
当转换回ZoneDateTime时,如果本地日期时间重叠,那么如果可能,将保留偏移量,否则将使用较早的偏移量。如果存在间隙,本地日期时间将根据间隙的长度向前调整。
此实例是不可变的,不受此方法调用的影响。

代码示例

代码示例来源:origin: org.elasticsearch/elasticsearch

public ZonedDateTime minusMonths(long amount) {
  return dt.minusMonths(amount);
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch

public ZonedDateTime minusMonths(long amount) {
  return dt.minusMonths(amount);
}

代码示例来源:origin: apache/servicemix-bundles

public ZonedDateTime minusMonths(long amount) {
  return dt.minusMonths(amount);
}

代码示例来源:origin: stackoverflow.com

public static ZonedDateTime getFirstOfLastMonth( ZoneId z ) {
  Instant instant = Instant.now();
  return getFirstOfPreviousMonth( instant , z );
}

public static ZonedDateTime getFirstOfPreviousMonth( Instant instantArg , ZoneId zoneArg ) {
  ZonedDateTime zdt = instantArg.atZone( zoneArg);
  ZonedDateTime firstOfMonthZdt = zdt.with( TemporalAdjusters.firstDayOfMonth() );
  ZonedDateTime firstOfMonthPriorZdt = firstOfMonthZdt.minusMonths( 1 );

  return firstOfMonthPriorZdt;
}

代码示例来源:origin: yahoo/sherlock

/**
   * Method to subtract month from given timestamp.
   * @param timestamp timestamp in minutes
   * @param n number of months to subtract
   * @return timestamp with subtracted months
   */
  public static Integer subtractMonth(Integer timestamp, int n) {
    ZonedDateTime zonedDateTime = TimeUtils.zonedDateTimeFromMinutes(timestamp);
    zonedDateTime = zonedDateTime.minusMonths(n);
    return (int) TimeUtils.zonedDateTimestamp(zonedDateTime) / 60;
  }
}

代码示例来源:origin: CodeStory/fluent-http

@Override
public Payload body(Context context) {
 String uri = context.uri();
 URL url = webJarUrlFinder.url(uri);
 return new Payload(url)
  .withHeader(CACHE_CONTROL, "public, max-age=31536000")
  .withHeader(LAST_MODIFIED, RFC_1123_DATE_TIME.format(now().minusMonths(1L)))
  .withHeader(EXPIRES, RFC_1123_DATE_TIME.format(now().plusWeeks(1L)));
}

代码示例来源:origin: UniversaBlockchain/universa

public boolean collect(Ledger ledger, Config config) {
  if(!config.getStatsIntervalSmall().equals(smallInterval) || !config.getStatsIntervalBig().equals(bigInterval)) {
    //intervals changed. need to reset node
    init(ledger,config);
    return false;
  }
  ZonedDateTime now = ZonedDateTime.now();
  Map<ItemState, Integer> lastIntervalStats = ledger.getLedgerSize(lastStatsBuildTime);
  ledgerStatsHistory.addLast(lastIntervalStats);
  ledgerHistoryTimestamps.addLast(lastStatsBuildTime);
  smallIntervalApproved = lastIntervalStats.getOrDefault(ItemState.APPROVED,0)+lastIntervalStats.getOrDefault(ItemState.REVOKED,0);
  bigIntervalApproved += smallIntervalApproved;
  uptimeApproved += smallIntervalApproved;
  lastIntervalStats.keySet().forEach(is -> ledgerSize.put(is, ledgerSize.getOrDefault(is,0) + lastIntervalStats.get(is)));
  while (ledgerHistoryTimestamps.getFirst().plus(bigInterval).isBefore(now)) {
    ledgerHistoryTimestamps.removeFirst();
    bigIntervalApproved -= ledgerStatsHistory.removeFirst().get(ItemState.APPROVED) + lastIntervalStats.getOrDefault(ItemState.REVOKED,0);
  }
  lastStatsBuildTime = now;
  Map<Integer, Integer> payments = ledger.getPayments(now.truncatedTo(ChronoUnit.DAYS).minusDays(now.getDayOfMonth()-1).minusMonths(1));
  payments.keySet().forEach( day -> {
  });
  return true;
}

代码示例来源:origin: com.cronutils/cron-utils

private ZonedDateTime toEndOfPreviousMonth(final ZonedDateTime datetime) {
  final ZonedDateTime previousMonth = datetime.minusMonths(1).with(lastDayOfMonth());
  final int highestHour = hours.getValues().get(hours.getValues().size() - 1);
  final int highestMinute = minutes.getValues().get(minutes.getValues().size() - 1);
  final int highestSecond = seconds.getValues().get(seconds.getValues().size() - 1);
  return ZonedDateTime
      .of(previousMonth.getYear(), previousMonth.getMonth().getValue(), previousMonth.getDayOfMonth(), highestHour, highestMinute, highestSecond, 0,
          previousMonth.getZone());
}

代码示例来源:origin: com.cronutils/cron-utils

private ExecutionTimeResult getPreviousPotentialYear(final ZonedDateTime date, final TimeNode days, final int highestMonth, int highestDay,
    final int highestHour, final int highestMinute, final int highestSecond) throws NoSuchValueException {
  NearestValue nearestValue;
  ZonedDateTime newDate;
  final int previousYear = yearsValueGenerator.generatePreviousValue(date.getYear());
  if (highestDay > 28) {
    final int highestDayOfMonth = LocalDate.of(previousYear, highestMonth, 1).lengthOfMonth();
    if (highestDay > highestDayOfMonth) {
      nearestValue = days.getPreviousValue(highestDay, 1);
      if (nearestValue.getShifts() > 0) {
        newDate = ZonedDateTime.of(
            LocalDate.of(previousYear, highestMonth, 1),
            MAX_SECONDS,
            date.getZone()
        ).minusMonths(nearestValue.getShifts()).with(lastDayOfMonth());
        return new ExecutionTimeResult(newDate, false);
      } else {
        highestDay = nearestValue.getValue();
      }
    }
  }
  return new ExecutionTimeResult(ZonedDateTime.of(
      LocalDate.of(previousYear, highestMonth, highestDay),
      LocalTime.of(highestHour, highestMinute, highestSecond),
      date.getZone()),
      false);
}

代码示例来源:origin: yahoo/sherlock

/**
 * Decrement a zoned date time by a certain
 * amount of this granularity.
 *
 * @param date   zoned date time to decrease
 * @param amount the number of times to decrease
 * @return copy of the zoned date time
 */
public ZonedDateTime decrement(ZonedDateTime date, int amount) {
  switch (this) {
    case MINUTE:
      return date.minusMinutes(amount);
    case HOUR:
      return date.minusHours(amount);
    case DAY:
      return date.minusDays(amount);
    case WEEK:
      return date.minusWeeks(amount);
    case MONTH:
      return date.minusMonths(amount);
    default:
      return date.minusHours(amount);
  }
}

代码示例来源:origin: yahoo/sherlock

/**
 * Subtract granularity intervals of this type
 * from a given date time.
 *
 * @param now       the time to subtract intervals from
 * @param intervals the number of intervals to subtract
 * @param granularityRange range of granularity to aggregate on
 * @return a copied ZonedDateTime with the intervals subtracted
 */
public ZonedDateTime subtractIntervals(ZonedDateTime now, int intervals, int granularityRange) {
  int n = intervals - (intervals % granularityRange);
  switch (this) {
    case MINUTE:
      return now.minusMinutes(n);
    case HOUR:
      return now.minusHours(n);
    case DAY:
      return now.minusDays(n);
    case WEEK:
      return now.minusWeeks(n);
    case MONTH:
      return now.minusMonths(n);
    default:
      return now.minusHours(n);
  }
}

代码示例来源:origin: com.cronutils/cron-utils

private ExecutionTimeResult getPreviousPotentialDayOfMonth(final ZonedDateTime date, final TimeNode days, final int highestHour, final int highestMinute,
    final int highestSecond) {
  NearestValue nearestValue = days.getPreviousValue(date.getDayOfMonth(), 0);
  if (nearestValue.getShifts() > 0) {
    ZonedDateTime newDate = ZonedDateTime.of(
        LocalDate.of(date.getYear(), date.getMonthValue(), 1),
        MAX_SECONDS,
        date.getZone()
    ).minusMonths(nearestValue.getShifts()).with(lastDayOfMonth());
    return new ExecutionTimeResult(newDate, false);
  }
  return new ExecutionTimeResult(date.withDayOfMonth(nearestValue.getValue())
      .with(LocalTime.of(highestHour, highestMinute, highestSecond)).truncatedTo(SECONDS), false);
}

代码示例来源:origin: org.hibernate.beanvalidation.tck/beanvalidation-tck-tests

);
ZonedDateTime past = reference.minusMonths( 1 ).minusHours( 1 );
dummy = new PastRelativePartialDummyEntity( past );

代码示例来源:origin: com.goldmansachs.jdmn/jdmn-core

@Override
public ZonedDateTime dateAddDuration(ZonedDateTime date, Duration duration) {
  if (date == null || duration == null) {
    return null;
  }
  try {
    int years = duration.getYears();
    int months = duration.getMonths();
    int days = duration.getDays();
    if (duration.getSign() == -1) {
      return date
          .minusYears(years)
          .minusMonths(months)
          .minusDays(days);
    } else {
      return date
          .plusYears(years)
          .plusMonths(months)
          .plusDays(days);
    }
  } catch (Throwable e) {
    String message = String.format("dateAdd(%s, %s)", date, duration);
    logError(message, e);
    return null;
  }
}

代码示例来源:origin: com.goldmansachs.jdmn/jdmn-core

@Override
public ZonedDateTime dateSubtractDuration(ZonedDateTime date, Duration duration) {
  if (date == null || duration == null) {
    return null;
  }
  try {
    int years = duration.getYears();
    int months = duration.getMonths();
    int days = duration.getDays();
    if (duration.getSign() == -1) {
      return date
          .plusYears(years)
          .plusMonths(months)
          .plusDays(days);
    } else {
      return date
          .minusYears(years)
          .minusMonths(months)
          .minusDays(days);
    }
  } catch (Throwable e) {
    String message = String.format("dateSubtract(%s, %s)", date, duration);
    logError(message, e);
    return null;
  }
}

代码示例来源:origin: UniversaBlockchain/universa

@Test
public void test123() throws Exception {
  ZonedDateTime now = ZonedDateTime.now();
  DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
  builder.appendValue(ChronoField.DAY_OF_MONTH,2);
  builder.appendLiteral("/");
  builder.appendValue(ChronoField.MONTH_OF_YEAR,2);
  builder.appendLiteral("/");
  builder.appendValue(ChronoField.YEAR,4);
  System.out.println(now.format(builder.toFormatter()));
  System.out.println(now.truncatedTo(ChronoUnit.DAYS).format(builder.toFormatter()));
  System.out.println(now.truncatedTo(ChronoUnit.DAYS).minusDays(now.getDayOfMonth()-1).format(builder.toFormatter()));
  System.out.println(now.truncatedTo(ChronoUnit.DAYS).minusDays(now.getDayOfMonth()-1).minusMonths(1).format(builder.toFormatter()));
}

代码示例来源:origin: goldmansachs/jdmn

@Override
public ZonedDateTime dateAddDuration(ZonedDateTime date, Duration duration) {
  if (date == null || duration == null) {
    return null;
  }
  try {
    int years = duration.getYears();
    int months = duration.getMonths();
    int days = duration.getDays();
    if (duration.getSign() == -1) {
      return date
          .minusYears(years)
          .minusMonths(months)
          .minusDays(days);
    } else {
      return date
          .plusYears(years)
          .plusMonths(months)
          .plusDays(days);
    }
  } catch (Throwable e) {
    String message = String.format("dateAdd(%s, %s)", date, duration);
    logError(message, e);
    return null;
  }
}

代码示例来源:origin: goldmansachs/jdmn

@Override
public ZonedDateTime dateSubtractDuration(ZonedDateTime date, Duration duration) {
  if (date == null || duration == null) {
    return null;
  }
  try {
    int years = duration.getYears();
    int months = duration.getMonths();
    int days = duration.getDays();
    if (duration.getSign() == -1) {
      return date
          .plusYears(years)
          .plusMonths(months)
          .plusDays(days);
    } else {
      return date
          .minusYears(years)
          .minusMonths(months)
          .minusDays(days);
    }
  } catch (Throwable e) {
    String message = String.format("dateSubtract(%s, %s)", date, duration);
    logError(message, e);
    return null;
  }
}

代码示例来源:origin: UniversaBlockchain/universa

@Test
public void paymentSaveTest() throws Exception {
  try (PooledDb db = (PooledDb) ledger.getDb()) {
    try (PreparedStatement statement = db.statement("delete from payments_summary;")
    ) {
      statement.executeUpdate();
    }
  }
  NodeStats stats = new NodeStats();
  Config config = new Config();
  stats.init(ledger,config);
  ZonedDateTime now  = ZonedDateTime.now();
  ZonedDateTime dateTime = now.minusDays(now.getDayOfMonth()-1).minusMonths(1);
  while (dateTime.isBefore(ZonedDateTime.now().plusSeconds(1))) {
    ledger.savePayment(100,dateTime);
    ledger.savePayment(100,dateTime);
    dateTime = dateTime.plusDays(1);
  }
  stats.collect(ledger,config);
  //assertEquals(stats.todayPaidAmount,200);
  //assertEquals(stats.yesterdayPaidAmount,200);
  //assertEquals(stats.thisMonthPaidAmount,200*now.getDayOfMonth());
  //assertEquals(stats.lastMonthPaidAmount,200*now.minusMonths(1).getMonth().length(now.getYear() % 4 == 0));
}

代码示例来源:origin: com.goldmansachs.jdmn/jdmn-core

return dateTime
    .minusYears(years)
    .minusMonths(months)
    .minusDays(days)
    .minusHours(hours)

相关文章

ZonedDateTime类方法