1 package de.juplo.jpa.converters;
3 import java.time.Instant;
4 import java.time.ZoneId;
5 import java.time.ZoneOffset;
12 public class TimeConversions
14 private static ZoneIdStrategy zoneStrategy =
15 new SystemDefaultZoneIdStrategy();
16 private static ZoneOffsetStrategy offsetStrategy =
17 new SystemDefaultZoneOffsetStrategy();
20 public static ZoneId getZoneId()
22 return zoneStrategy.getZoneId();
25 public static ZoneOffset getZoneOffset()
27 return offsetStrategy.getZoneOffset();
31 public static void setZoneIdStrategy(ZoneIdStrategy strategy)
34 throw new IllegalArgumentException("Strategy must not be null!");
35 zoneStrategy = strategy;
38 public static void setZoneOffsetStrategy(ZoneOffsetStrategy strategy)
41 throw new IllegalArgumentException("Strategy must not be null!");
42 offsetStrategy = strategy;
46 public interface ZoneIdStrategy
48 public ZoneId getZoneId();
51 public interface ZoneOffsetStrategy
53 public ZoneOffset getZoneOffset();
57 public static class SystemDefaultZoneIdStrategy
62 public ZoneId getZoneId()
64 return ZoneId.systemDefault();
68 public static class SystemDefaultZoneOffsetStrategy
73 public ZoneOffset getZoneOffset()
75 return ZoneOffset.systemDefault().getRules().getOffset(Instant.now());
79 public static class FixedZoneIdStrategy
83 private final ZoneId zone;
85 public FixedZoneIdStrategy(ZoneId zone)
91 public ZoneId getZoneId()
97 public static class FixedZoneOffsetStrategy
101 private final ZoneOffset offset;
103 public FixedZoneOffsetStrategy(ZoneOffset offset)
105 this.offset = offset;
109 public ZoneOffset getZoneOffset()