Klasse DateTimeUtil

java.lang.Object
de.svws_nrw.davapi.util.icalendar.DateTimeUtil

public final class DateTimeUtil extends Object
Utility-Klasse zum Parsen und Konvertieren von Datums- und Zeitangaben im Kontext von iCalendar-Einträgen.
  • Felddetails

  • Methodendetails

    • parseCalDav

      public static Instant parseCalDav(@NotNull @NotNull String input, @NotNull @NotNull String zone)
      Utility-Methode zum parsen von CalDav-Zeitangaben im Format 20221102T104500 oder 20221102T104500Z
      Parameter:
      input - der Input-String aus einem .ics File
      zone - die Zeitzone in die der String geparst werden soll
      Gibt zurück:
      den geparsten Zeitpunkt
    • parseCalDav

      public static Instant parseCalDav(@NotNull @NotNull String input)
      Utility-Methode zum parsen von CalDav-Zeitangaben im Format 20221102T104500 oder 20221102T104500Z. Zunächst wird versucht nach dem Format 20221102T104500Z zu parsen, wenn dies fehlschlägt, wird auf parseCalDav(String, String) zurückgegriffen und als Zeitzone "Europe/Berlin" genutzt
      Parameter:
      input - der Input-String aus einem .ics File
      Gibt zurück:
      den geparsten Zeitpunkt
    • parseCalDav

      public static Instant parseCalDav(@NotNull @NotNull IProperty property)
      Utility-Methode zum parsen eines Zeitpunkts aus einem Property. Ist die Zeitzone im key gegeben, wird parseCalDav(String, String) mit der Zeitzone genutzt, ansonsten parseCalDav(String)
      Parameter:
      property - das Property aus dem der Zeitpunkt genutzt werden soll
      Gibt zurück:
      den geparsten Zeitpunkt
    • toSQLTimeStamp

      public static String toSQLTimeStamp(@NotNull @NotNull Instant instant)
      Konvertiert ein Instant zu einem SQL-Timestamp-String wie er am DTODavRessource.KalenderStart verwendet wird
      Parameter:
      instant - das Instant
      Gibt zurück:
      der String, der den Zeitpunkt repräsentiert
    • fromSqlTimeStamp

      public static Instant fromSqlTimeStamp(@NotNull @NotNull String sql)
      Konvertiert ein SQL-Timestamp String wie er an DTODavRessource.KalenderStart verwendet wird in ein Instant
      Diese Methode nutzt die Systemzeitzone zum Parsen!
      Parameter:
      sql - der String für den SQL-Timestamp
      Gibt zurück:
      den Zeitpunkt aus dem SQLTimestamp
    • intersect

      public static boolean intersect(Instant pRangeStart1, Instant pRangeEnd1, Instant pRangeStart2, Instant pRangeEnd2)
      Gibt wieder ob zwei Zeiträume überschneidend sind. Zeiträume überschneiden sich, wenn es mindestens einen Zeitpunkt gibt, welcher in beiden Zeiträumen enthalten ist.
      Parameter:
      pRangeStart1 - Startzeit des ersten Zeitraums
      pRangeEnd1 - Endzeit des ersten Zeitraums
      pRangeStart2 - Startzeit des zweiten Zeitraums
      pRangeEnd2 - Endzeit des zweiten Zeitraums
      Gibt zurück:
      true, wenn die Zeiträume überlappen
    • between

      public static boolean between(Instant pRangeStart, Instant pRangeEnd, Instant instant)
      Gibt wieder, ob sich ein Zeitpunkt innerhalb eines Zeitraums befindet, inklusive Start und Endzeitpunkt
      Parameter:
      pRangeStart - der Startzeitpunkt der Range
      pRangeEnd - der Endzeitpunkt der Range
      instant - der Zeitpunkt, der gegen den Zeitraum verglichen werden soll
      Gibt zurück:
      true, wenn instant gleich oder größer als der Start und gleich oder kleiner als das Ende ist
    • getTimeInMillis

      public static long getTimeInMillis(String time)
      Gibt aus einem SQL-Timestamp-String die Millisekunden seit 1970 wieder, vgl. Timestamp.getTime()
      Parameter:
      time - den SQL-Timestamp String wie er in DTODavRessource.KalenderStart verwendet wird
      Gibt zurück:
      die Millisekunden
    • toCalDavString

      public static String toCalDavString(Instant t)
      Gibt einen CalDav String in Zulu-Timezone für den gegebenen Zeitpunkt wieder.
      Parameter:
      t - der gegebene Zeitpunkt
      Gibt zurück:
      der CalDav String
    • toCalDavString

      public static String toCalDavString(Instant t, String tzid)
      Erzeugt einen CalDav String ohne Zeitzonenangabe, Zeit wird in die gegebene Zeitzone gerechnet
      Parameter:
      t - der gegebene Zeitpunkt
      tzid - die Zeitzone, in die umgerechnet werden soll
      Gibt zurück:
      das Datum als Zeichenkette für die Verwendung in CalDav
    • toCalDavDateString

      public static String toCalDavDateString(LocalDate d)
      Erzeugt aus einem Localdate ein .ics DateString im Format YYYYMMDD
      Parameter:
      d - das Datum, welches umgewandelt werden soll
      Gibt zurück:
      den DateString zur Verwendung in .ics Daten