Из Java 8 вы можете определить статические методы в интерфейсах в дополнение к методам по умолчанию.
ZoneId
, соответствующий идентификатору часового пояса; он использует часовой пояс системы по умолчанию, если нет объекта ZoneId
, соответствующего данному идентификатору. (В результате вы можете упростить метод getZonedDateTime
) Вот код:
public interface TimeClient {
// ...
static public ZoneId getZoneId (String zoneString) {
try {
return ZoneId.of(zoneString);
} catch (DateTimeException e) {
System.err.println("Invalid time zone: " + zoneString +"; using default time zone instead.");
return ZoneId.systemDefault();
}
}
default public ZonedDateTime getZonedDateTime(String zoneString) {
return ZonedDateTime.of(getLocalDateTime(), getZoneId(zoneString));
}
}