Search in sources :

Example 41 with ZoneId

use of java.time.ZoneId in project jdk8u_jdk by JetBrains.

the class TCKMinguoChronology method test_dateNow.

@Test
public void test_dateNow() {
    assertEquals(MinguoChronology.INSTANCE.dateNow(), MinguoDate.now());
    assertEquals(MinguoChronology.INSTANCE.dateNow(), MinguoDate.now(ZoneId.systemDefault()));
    assertEquals(MinguoChronology.INSTANCE.dateNow(), MinguoDate.now(Clock.systemDefaultZone()));
    assertEquals(MinguoChronology.INSTANCE.dateNow(), MinguoDate.now(Clock.systemDefaultZone().getZone()));
    assertEquals(MinguoChronology.INSTANCE.dateNow(), MinguoChronology.INSTANCE.dateNow(ZoneId.systemDefault()));
    assertEquals(MinguoChronology.INSTANCE.dateNow(), MinguoChronology.INSTANCE.dateNow(Clock.systemDefaultZone()));
    assertEquals(MinguoChronology.INSTANCE.dateNow(), MinguoChronology.INSTANCE.dateNow(Clock.systemDefaultZone().getZone()));
    ZoneId zoneId = ZoneId.of("Europe/Paris");
    assertEquals(MinguoChronology.INSTANCE.dateNow(zoneId), MinguoChronology.INSTANCE.dateNow(Clock.system(zoneId)));
    assertEquals(MinguoChronology.INSTANCE.dateNow(zoneId), MinguoChronology.INSTANCE.dateNow(Clock.system(zoneId).getZone()));
    assertEquals(MinguoChronology.INSTANCE.dateNow(zoneId), MinguoDate.now(Clock.system(zoneId)));
    assertEquals(MinguoChronology.INSTANCE.dateNow(zoneId), MinguoDate.now(Clock.system(zoneId).getZone()));
    assertEquals(MinguoChronology.INSTANCE.dateNow(ZoneId.of(ZoneOffset.UTC.getId())), MinguoChronology.INSTANCE.dateNow(Clock.systemUTC()));
}
Also used : ZoneId(java.time.ZoneId) Test(org.testng.annotations.Test)

Example 42 with ZoneId

use of java.time.ZoneId in project jdk8u_jdk by JetBrains.

the class TCKThaiBuddhistChronology method test_dateNow.

@Test
public void test_dateNow() {
    assertEquals(ThaiBuddhistChronology.INSTANCE.dateNow(), ThaiBuddhistDate.now());
    assertEquals(ThaiBuddhistChronology.INSTANCE.dateNow(), ThaiBuddhistDate.now(ZoneId.systemDefault()));
    assertEquals(ThaiBuddhistChronology.INSTANCE.dateNow(), ThaiBuddhistDate.now(Clock.systemDefaultZone()));
    assertEquals(ThaiBuddhistChronology.INSTANCE.dateNow(), ThaiBuddhistDate.now(Clock.systemDefaultZone().getZone()));
    assertEquals(ThaiBuddhistChronology.INSTANCE.dateNow(), ThaiBuddhistChronology.INSTANCE.dateNow(ZoneId.systemDefault()));
    assertEquals(ThaiBuddhistChronology.INSTANCE.dateNow(), ThaiBuddhistChronology.INSTANCE.dateNow(Clock.systemDefaultZone()));
    assertEquals(ThaiBuddhistChronology.INSTANCE.dateNow(), ThaiBuddhistChronology.INSTANCE.dateNow(Clock.systemDefaultZone().getZone()));
    ZoneId zoneId = ZoneId.of("Europe/Paris");
    assertEquals(ThaiBuddhistChronology.INSTANCE.dateNow(zoneId), ThaiBuddhistChronology.INSTANCE.dateNow(Clock.system(zoneId)));
    assertEquals(ThaiBuddhistChronology.INSTANCE.dateNow(zoneId), ThaiBuddhistChronology.INSTANCE.dateNow(Clock.system(zoneId).getZone()));
    assertEquals(ThaiBuddhistChronology.INSTANCE.dateNow(zoneId), ThaiBuddhistDate.now(Clock.system(zoneId)));
    assertEquals(ThaiBuddhistChronology.INSTANCE.dateNow(zoneId), ThaiBuddhistDate.now(Clock.system(zoneId).getZone()));
    assertEquals(ThaiBuddhistChronology.INSTANCE.dateNow(ZoneId.of(ZoneOffset.UTC.getId())), ThaiBuddhistChronology.INSTANCE.dateNow(Clock.systemUTC()));
}
Also used : ZoneId(java.time.ZoneId) Test(org.testng.annotations.Test)

Example 43 with ZoneId

use of java.time.ZoneId in project lucene-solr by apache.

the class DateMathParser method parseMath.

/**
   * Parses a string of commands relative "now" are returns the resulting Date.
   * 
   * @exception ParseException positions in ParseExceptions are token positions, not character positions.
   */
public Date parseMath(String math) throws ParseException {
    /* check for No-Op */
    if (0 == math.length()) {
        return getNow();
    }
    ZoneId zoneId = zone.toZoneId();
    // localDateTime is a date and time local to the timezone specified
    LocalDateTime localDateTime = ZonedDateTime.ofInstant(getNow().toInstant(), zoneId).toLocalDateTime();
    String[] ops = splitter.split(math);
    int pos = 0;
    while (pos < ops.length) {
        if (1 != ops[pos].length()) {
            throw new ParseException("Multi character command found: \"" + ops[pos] + "\"", pos);
        }
        char command = ops[pos++].charAt(0);
        switch(command) {
            case '/':
                if (ops.length < pos + 1) {
                    throw new ParseException("Need a unit after command: \"" + command + "\"", pos);
                }
                try {
                    localDateTime = round(localDateTime, ops[pos++]);
                } catch (IllegalArgumentException e) {
                    throw new ParseException("Unit not recognized: \"" + ops[pos - 1] + "\"", pos - 1);
                }
                break;
            case '+':
            /* fall through */
            case '-':
                if (ops.length < pos + 2) {
                    throw new ParseException("Need a value and unit for command: \"" + command + "\"", pos);
                }
                int val = 0;
                try {
                    val = Integer.parseInt(ops[pos++]);
                } catch (NumberFormatException e) {
                    throw new ParseException("Not a Number: \"" + ops[pos - 1] + "\"", pos - 1);
                }
                if ('-' == command) {
                    val = 0 - val;
                }
                try {
                    String unit = ops[pos++];
                    localDateTime = add(localDateTime, val, unit);
                } catch (IllegalArgumentException e) {
                    throw new ParseException("Unit not recognized: \"" + ops[pos - 1] + "\"", pos - 1);
                }
                break;
            default:
                throw new ParseException("Unrecognized command: \"" + command + "\"", pos - 1);
        }
    }
    return Date.from(ZonedDateTime.of(localDateTime, zoneId).toInstant());
}
Also used : LocalDateTime(java.time.LocalDateTime) ZoneId(java.time.ZoneId) DateTimeParseException(java.time.format.DateTimeParseException) ParseException(java.text.ParseException)

Example 44 with ZoneId

use of java.time.ZoneId in project java8-tutorial by winterbe.

the class LocalTime1 method main.

public static void main(String[] args) {
    // get the current time
    Clock clock = Clock.systemDefaultZone();
    long t0 = clock.millis();
    System.out.println(t0);
    Instant instant = clock.instant();
    Date legacyDate = Date.from(instant);
    ZoneId zone1 = ZoneId.of("Europe/Berlin");
    ZoneId zone2 = ZoneId.of("Brazil/East");
    System.out.println(zone1.getRules());
    System.out.println(zone2.getRules());
    // time
    LocalTime now1 = LocalTime.now(zone1);
    LocalTime now2 = LocalTime.now(zone2);
    System.out.println(now1);
    System.out.println(now2);
    // false
    System.out.println(now1.isBefore(now2));
    long hoursBetween = ChronoUnit.HOURS.between(now1, now2);
    long minutesBetween = ChronoUnit.MINUTES.between(now1, now2);
    System.out.println(hoursBetween);
    System.out.println(minutesBetween);
    // create time
    LocalTime now = LocalTime.now();
    System.out.println(now);
    LocalTime late = LocalTime.of(23, 59, 59);
    System.out.println(late);
    DateTimeFormatter germanFormatter = DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT).withLocale(Locale.GERMAN);
    LocalTime leetTime = LocalTime.parse("13:37", germanFormatter);
    System.out.println(leetTime);
// to legacy date
}
Also used : ZoneId(java.time.ZoneId) LocalTime(java.time.LocalTime) Instant(java.time.Instant) Clock(java.time.Clock) DateTimeFormatter(java.time.format.DateTimeFormatter) Date(java.util.Date)

Example 45 with ZoneId

use of java.time.ZoneId in project jdk8u_jdk by JetBrains.

the class DateTimePrintContext method adjust.

private static TemporalAccessor adjust(final TemporalAccessor temporal, DateTimeFormatter formatter) {
    // normal case first (early return is an optimization)
    Chronology overrideChrono = formatter.getChronology();
    ZoneId overrideZone = formatter.getZone();
    if (overrideChrono == null && overrideZone == null) {
        return temporal;
    }
    // ensure minimal change (early return is an optimization)
    Chronology temporalChrono = temporal.query(TemporalQueries.chronology());
    ZoneId temporalZone = temporal.query(TemporalQueries.zoneId());
    if (Objects.equals(overrideChrono, temporalChrono)) {
        overrideChrono = null;
    }
    if (Objects.equals(overrideZone, temporalZone)) {
        overrideZone = null;
    }
    if (overrideChrono == null && overrideZone == null) {
        return temporal;
    }
    // make adjustment
    final Chronology effectiveChrono = (overrideChrono != null ? overrideChrono : temporalChrono);
    if (overrideZone != null) {
        // if have zone and instant, calculation is simple, defaulting chrono if necessary
        if (temporal.isSupported(INSTANT_SECONDS)) {
            Chronology chrono = (effectiveChrono != null ? effectiveChrono : IsoChronology.INSTANCE);
            return chrono.zonedDateTime(Instant.from(temporal), overrideZone);
        }
        // block changing zone on OffsetTime, and similar problem cases
        if (overrideZone.normalized() instanceof ZoneOffset && temporal.isSupported(OFFSET_SECONDS) && temporal.get(OFFSET_SECONDS) != overrideZone.getRules().getOffset(Instant.EPOCH).getTotalSeconds()) {
            throw new DateTimeException("Unable to apply override zone '" + overrideZone + "' because the temporal object being formatted has a different offset but" + " does not represent an instant: " + temporal);
        }
    }
    final ZoneId effectiveZone = (overrideZone != null ? overrideZone : temporalZone);
    final ChronoLocalDate effectiveDate;
    if (overrideChrono != null) {
        if (temporal.isSupported(EPOCH_DAY)) {
            effectiveDate = effectiveChrono.date(temporal);
        } else {
            // check for date fields other than epoch-day, ignoring case of converting null to ISO
            if (!(overrideChrono == IsoChronology.INSTANCE && temporalChrono == null)) {
                for (ChronoField f : ChronoField.values()) {
                    if (f.isDateBased() && temporal.isSupported(f)) {
                        throw new DateTimeException("Unable to apply override chronology '" + overrideChrono + "' because the temporal object being formatted contains date fields but" + " does not represent a whole date: " + temporal);
                    }
                }
            }
            effectiveDate = null;
        }
    } else {
        effectiveDate = null;
    }
    // this better handles map-like underlying temporal instances
    return new TemporalAccessor() {

        @Override
        public boolean isSupported(TemporalField field) {
            if (effectiveDate != null && field.isDateBased()) {
                return effectiveDate.isSupported(field);
            }
            return temporal.isSupported(field);
        }

        @Override
        public ValueRange range(TemporalField field) {
            if (effectiveDate != null && field.isDateBased()) {
                return effectiveDate.range(field);
            }
            return temporal.range(field);
        }

        @Override
        public long getLong(TemporalField field) {
            if (effectiveDate != null && field.isDateBased()) {
                return effectiveDate.getLong(field);
            }
            return temporal.getLong(field);
        }

        @SuppressWarnings("unchecked")
        @Override
        public <R> R query(TemporalQuery<R> query) {
            if (query == TemporalQueries.chronology()) {
                return (R) effectiveChrono;
            }
            if (query == TemporalQueries.zoneId()) {
                return (R) effectiveZone;
            }
            if (query == TemporalQueries.precision()) {
                return temporal.query(query);
            }
            return query.queryFrom(this);
        }
    };
}
Also used : ChronoLocalDate(java.time.chrono.ChronoLocalDate) DateTimeException(java.time.DateTimeException) TemporalAccessor(java.time.temporal.TemporalAccessor) TemporalField(java.time.temporal.TemporalField) ZoneId(java.time.ZoneId) ChronoField(java.time.temporal.ChronoField) TemporalQuery(java.time.temporal.TemporalQuery) Chronology(java.time.chrono.Chronology) IsoChronology(java.time.chrono.IsoChronology) ZoneOffset(java.time.ZoneOffset)

Aggregations

ZoneId (java.time.ZoneId)88 Test (org.testng.annotations.Test)38 LocalDateTime (java.time.LocalDateTime)13 ZonedDateTime (java.time.ZonedDateTime)13 Test (org.junit.Test)8 Clock (java.time.Clock)7 ZoneOffset (java.time.ZoneOffset)7 ZoneOffsetTransition (java.time.zone.ZoneOffsetTransition)6 Chronology (java.time.chrono.Chronology)5 IsoChronology (java.time.chrono.IsoChronology)5 AbstractTCKTest (tck.java.time.AbstractTCKTest)5 Instant (java.time.Instant)4 HijrahChronology (java.time.chrono.HijrahChronology)4 JapaneseChronology (java.time.chrono.JapaneseChronology)4 MinguoChronology (java.time.chrono.MinguoChronology)4 ThaiBuddhistChronology (java.time.chrono.ThaiBuddhistChronology)4 LocalTime (java.time.LocalTime)3 DateTimeFormatter (java.time.format.DateTimeFormatter)3 HashMap (java.util.HashMap)3 Field (java.lang.reflect.Field)2