< prev index next >
src/java.base/share/classes/java/time/chrono/Chronology.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 65,74 ****
--- 65,75 ----
import java.time.DateTimeException;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
+ import java.time.ZoneOffset;
import java.time.format.DateTimeFormatterBuilder;
import java.time.format.ResolverStyle;
import java.time.format.TextStyle;
import java.time.temporal.ChronoField;
import java.time.temporal.TemporalAccessor;
*** 710,719 ****
--- 711,766 ----
*/
default ChronoPeriod period(int years, int months, int days) {
return new ChronoPeriodImpl(this, years, months, days);
}
+ //---------------------------------------------------------------------
+
+ /**
+ * Gets the number of seconds from the Java epoch of 1970-01-01T00:00:00Z.
+ * <p>
+ * Returns the number of seconds from the epoch of 1970-01-01T00:00:00Z
+ * formed using given prolepticYear, month, dayOfMonth , hour, minute, second and zoneOffset.
+ *
+ * @param prolepticYear the chronology proleptic-year
+ * @param month the chronology month-of-year
+ * @param dayOfMonth the chronology day-of-month
+ * @param hour the hour-of-day to represent, from 0 to 23
+ * @param minute the minute-of-hour to represent, from 0 to 59
+ * @param second the second-of-minute to represent, from 0 to 59
+ * @param zoneOffset the zone offset, not null
+ * @return the number of seconds relative to 1970-01-01T00:00:00Z, may be negative
+ */
+ public default long epochSecond(int prolepticYear, int month, int dayOfMonth,
+ int hour, int minute, int second, ZoneOffset zoneOffset) {
+ Objects.requireNonNull(zoneOffset, "zoneOffset");
+ long daysInSec = Math.multiplyExact(date(prolepticYear, month, dayOfMonth).toEpochDay(), 86400);
+ long timeinSec = (hour * 60 + minute) * 60 + second;
+ return Math.addExact(daysInSec, timeinSec - zoneOffset.getTotalSeconds());
+ }
+
+ /**
+ * Gets the number of seconds from the epoch of 1970-01-01T00:00:00Z.
+ * <p>
+ * The number of seconds is caluculated using given era, prolepticYear,
+ * month, dayOfMonth , hour, minute, second and zoneOffset.
+ *
+ * @param era the era of the correct type for the chronology, not null
+ * @param yearOfEra the chronology year-of-era
+ * @param month the chronology month-of-year
+ * @param dayOfMonth the chronology day-of-month
+ * @param hour the hour-of-day to represent, from 0 to 23
+ * @param minute the minute-of-hour to represent, from 0 to 59
+ * @param second the second-of-minute to represent, from 0 to 59
+ * @param zoneOffset the zone offset, not null
+ * @return the number of seconds relative to 1970-01-01T00:00:00Z, may be negative
+ */
+ public default long epochSecond(Era era, int yearOfEra, int month, int dayOfMonth,
+ int hour, int minute, int second, ZoneOffset zoneOffset) {
+ Objects.requireNonNull(era, "era");
+ return epochSecond(prolepticYear(era, yearOfEra), month, dayOfMonth, hour, minute, second, zoneOffset);
+ }
//-----------------------------------------------------------------------
/**
* Compares this chronology to another chronology.
* <p>
* The comparison order first by the chronology ID string, then by any
< prev index next >