Class DateTools

java.lang.Object
io.goobi.viewer.controller.DateTools

public final class DateTools extends Object
Utility methods for date parsing, etc.
  • Field Details

    • FORMATTERISO8601FULL

      public static final DateTimeFormatter FORMATTERISO8601FULL
      Constant formatterISO8601Full.
    • FORMATTERISO8601DATETIMEINSTANT

      public static final DateTimeFormatter FORMATTERISO8601DATETIMEINSTANT
      Constant formatterISO8601DateTimeInstant.
    • FORMATTERISO8601DATETIMEWITHOFFSET

      public static final DateTimeFormatter FORMATTERISO8601DATETIMEWITHOFFSET
      Constant formatterISO8601DateTimeWithOffset.
    • FORMATTERISO8601DATE

      public static final DateTimeFormatter FORMATTERISO8601DATE
      Constant formatterISO8601Date.
    • FORMATTERISO8601TIME

      public static final DateTimeFormatter FORMATTERISO8601TIME
      Constant formatterISO8601Date.
    • FORMATTERISO8601DATEREVERSE

      public static final DateTimeFormatter FORMATTERISO8601DATEREVERSE
      Constant formatterISO8601DateReverse.
    • FORMATTERISO8601YEARMONTH

      public static final DateTimeFormatter FORMATTERISO8601YEARMONTH
      Constant formatterISO8601YearMonth.
    • FORMATTERISO8601DATETIME

      public static final DateTimeFormatter FORMATTERISO8601DATETIME
      Constant formatterISO8601DateTime.
    • FORMATTERISO8601DATETIMEMS

      public static final DateTimeFormatter FORMATTERISO8601DATETIMEMS
      Constant formatterISO8601DateTimeMS.
    • FORMATTERDEDATE

      public static final DateTimeFormatter FORMATTERDEDATE
      Constant formatterDEDate.
    • FORMATTERENDATE

      public static final DateTimeFormatter FORMATTERENDATE
      Constant formatterUSDate.
    • FORMATTERCNDATE

      public static final DateTimeFormatter FORMATTERCNDATE
      Constant formatterCNDate.
    • FORMATTERJPDATE

      public static final DateTimeFormatter FORMATTERJPDATE
      Constant formatterJPDate.
    • FORMATTERISO8601DATETIMENOSECONDS

      public static final DateTimeFormatter FORMATTERISO8601DATETIMENOSECONDS
      Constant formatterISO8601DateTimeNoSeconds.
    • FORMATTERDEDATETIME

      public static final DateTimeFormatter FORMATTERDEDATETIME
      Constant formatterDEDateTime.
    • FORMATTERENDATETIME

      public static final DateTimeFormatter FORMATTERENDATETIME
      Constant formatterENDateTime.
    • FORMATTERDEDATETIMENOSECONDS

      public static final DateTimeFormatter FORMATTERDEDATETIMENOSECONDS
      Constant formatterDEDateTimeNoSeconds.
    • FORMATTERENDATETIMENOSECONDS

      public static final DateTimeFormatter FORMATTERENDATETIMENOSECONDS
      Constant formatterENDateTimeNoSeconds.
    • FORMATTERISO8601BASICDATENOYEAR

      public static final DateTimeFormatter FORMATTERISO8601BASICDATENOYEAR
      Constant formatterISO8601BasicDateNoYear.
    • FORMATTERISO8601BASICDATE

      public static final DateTimeFormatter FORMATTERISO8601BASICDATE
      Constant formatterISO8601BasicDate.
    • FORMATTERISO8601BASICDATETIME

      public static final DateTimeFormatter FORMATTERISO8601BASICDATETIME
      Constant formatterBasicDateTime.
    • FORMATTERJAVAUTILDATETOSTRING

      public static final DateTimeFormatter FORMATTERJAVAUTILDATETOSTRING
      Constant formatterJavaUtilDateToString.
    • FORMATTERYEARONLY

      public static final DateTimeFormatter FORMATTERYEARONLY
    • FORMATTERMONTHDAYONLY

      public static final DateTimeFormatter FORMATTERMONTHDAYONLY
    • FORMATTERFILENAME

      public static final DateTimeFormatter FORMATTERFILENAME
  • Method Details

    • parseMultipleDatesFromString

      public static List<LocalDateTime> parseMultipleDatesFromString(String dateString)
      Converts the given string to a list of Date objects created from the contents of this string (years or whole dates).
      Parameters:
      dateString - raw date string to parse, may contain multiple dates separated by "/"
      Returns:
      a list of LocalDateTime objects parsed from the given date string
    • getLocalDateTimeFromMillis

      public static LocalDateTime getLocalDateTimeFromMillis(long millis, boolean utc)
      Parameters:
      millis - Epoch milliseconds to convert
      utc - If true, interprets the value as UTC; otherwise uses the system default timezone
      Returns:
      LocalDateTime built from millis
    • getMillisFromLocalDateTime

      public static Long getMillisFromLocalDateTime(LocalDateTime ldt, boolean utc)
      Parameters:
      ldt - LocalDateTime to convert to epoch milliseconds
      utc - If true, treats the value as UTC; otherwise uses the system default timezone
      Returns:
      Long built from ldt
    • parseDateTimeFromString

      public static LocalDateTime parseDateTimeFromString(String dateString, boolean fromUTC)
      Parameters:
      dateString - Date/time string to parse
      fromUTC - If true, interprets the parsed date as UTC and converts to the system timezone
      Returns:
      LocalDateTime parsed from dateString
    • parseDateTimeFromString

      public static LocalDateTime parseDateTimeFromString(String dateString, boolean fromUTC, Integer zoneOffset)
      parseDateTimeFromString.
      Parameters:
      dateString - date/time string to parse in any supported format
      fromUTC - if true, interprets the parsed date as UTC
      zoneOffset - Optional UTC hour offset to apply when converting from UTC; null uses system default
      Returns:
      the parsed LocalDateTime, or null if the string cannot be parsed
    • parseDateFromString

      public static LocalDateTime parseDateFromString(String dateString)
      parseDateFromString.
      Parameters:
      dateString - date string to parse using default (non-UTC) mode
      Returns:
      the parsed date as LocalDateTime, or null if the string cannot be parsed
    • convertLocalDateTimeToDateViaInstant

      public static Date convertLocalDateTimeToDateViaInstant(LocalDateTime dateToConvert, boolean utc)
      Parameters:
      dateToConvert - LocalDateTime to convert to a Date
      utc - If true, uses UTC zone; otherwise uses the system default timezone
      Returns:
      Date converted from dateToConvert
    • convertDateToLocalDateTimeViaInstant

      public static LocalDateTime convertDateToLocalDateTimeViaInstant(Date dateToConvert)
      Parameters:
      dateToConvert - Date to convert to a LocalDateTime
      Returns:
      LocalDateTime converted form dateToConvert
    • format

      public static String format(Date date, DateTimeFormatter formatter, boolean utc)
      Parameters:
      date - java.util.Date
      formatter - Formatter to apply to the date
      utc - If true, formats in UTC; otherwise uses the system default timezone
      Returns:
      Formatted Date as String
    • format

      public static String format(LocalDateTime localDateTime, DateTimeFormatter formatter, boolean utc)
      Parameters:
      localDateTime - LocalDateTime to format
      formatter - Formatter to apply to the date/time
      utc - If true, formats in UTC; otherwise uses the system default timezone
      Returns:
      Formatted LocalDateTime as String
    • getLocalDate

      public static String getLocalDate(LocalDateTime date, String language)
      Returns the string representation of the given Date based on the given ISO 639-1 language code.
      Parameters:
      date - LocalDateTime to format.
      language - ISO 639-1 (two-character) language code.
      Returns:
      the date/time formatted as a locale-specific string based on the given language code
    • formatDate

      public static String formatDate(LocalDateTime ldt, Locale locale)
      Converts the given LocalDateTime to a locale-based string format. This method is used by the crowdsourcing module.
      Parameters:
      ldt - date/time value to format
      locale - locale determining the output date format
      Returns:
      the date/time formatted as a locale-specific string, or null if ldt is null