1 /*
2 * SPDX-FileCopyrightText: none
3 * SPDX-License-Identifier: CC0-1.0
4 */
5
6 package dev.metaschema.core.metapath.item.atomic;
7
8 import java.time.ZoneOffset;
9 import java.time.ZonedDateTime;
10
11 import edu.umd.cs.findbugs.annotations.NonNull;
12
13 /**
14 * A temporal valued item related to a {@link ZonedDateTime}.
15 * <p>
16 * This may represent a specific point in time or a 24 hour period in time.
17 */
18 public interface ICalendarTemporalItem extends ITemporalItem {
19
20 /**
21 * Get the temporal value as a {@link ZonedDateTime}.
22 *
23 * @return the date/time value
24 */
25 @NonNull
26 ZonedDateTime asZonedDateTime();
27
28 @Override
29 default ZoneOffset getZoneOffset() {
30 return hasTimezone() ? asZonedDateTime().getOffset() : null;
31 }
32 }