Class DateFormatter

java.lang.Object
com.atlassian.confluence.core.DateFormatter

public class DateFormatter extends Object
Formats dates and times into a given timezone in a variety of formats. The actual formats are provided by the FormatSettingsManager which is passed to the constructor. Also allows for formatting into arbitrary formats.

This class is not thread-safe, primarily because DateFormat implementations are not synchronised. You should construct one instance of this class per thread or request.

TODO: Should support user locales

  • Constructor Details

  • Method Details

    • format

      public String format(Date date)
      Formats the date and returns it as a string, using the date formatting pattern. This format might be 'yyyy-MM-dd' or something similar.

      The TimeZone specified in the constructor is used to convert the date from server time to the user's local time.

    • formatDateTime

      public String formatDateTime(Date date)
      Formats the date and returns it as a string, using the date-time formatting pattern. This format might be 'yyyy-MM-dd HH:mm:ss' or something similar.

      The TimeZone specified in the constructor is used to convert the date from server time to the user's local time.

    • formatDateTime

      public String formatDateTime(Instant instant)
      Same as formatDateTime(Date) but accepting Java 8 Instant
      Since:
      7.14
    • formatTime

      public String formatTime(Date date)
      Formats the date and returns it as a string, using the time formatting pattern. This format might be 'HH:mm:ss' or something similar.

      The TimeZone specified in the constructor is used to convert the date from server time to the user's local time.

    • formatTimeMedium

      public String formatTimeMedium(Date date)
      Formats the date and returns it as a string, using DateFormat.MEDIUM as the time formatting pattern.

      The TimeZone specified in the constructor is used to convert the date from server time to the user's local time.

    • formatDateFull

      public String formatDateFull(Date date)
      Formats the date and returns it as a string, using DateFormat.FULL as the formatting pattern.

      The TimeZone specified in the constructor is used to convert the date from server time to the user's local time.

    • format

      public String format(int formatOption, Date date)
      Formats the date and returns it as a string with a formatOption defined in JDK.

      The TimeZone specified in the constructor is used to convert the date from server time to the user's local time.

    • formatServerDate

      public String formatServerDate(Date date)
      Same as format(Date), but doesn't perform time zone conversion.

      This is typically used for formatting the posting dates of news items, which must be represented the same for all users.

    • formatServerDateWithUserLocale

      public String formatServerDateWithUserLocale(int formatOption, Date date)
      Same as format(int, Date), but doesn't perform time zone conversion.

      This is typically used for formatting the posting dates of news items, which must be represented the same for all users.

    • formatServerDateTime

      public String formatServerDateTime(Date date)
      Same as formatDateTime(Date), but doesn't perform time zone conversion.

      This is typically used for formatting the posting dates of news items, which must be represented the same for all users.

    • formatBlogDate

      public String formatBlogDate(Date date)
      Formats the date as a blog posting date and returns it as a string. The format might be 'dd MMM @ h:mm a' or something similar.

      This method does not apply the TimeZone specified in the constructor, but instead uses server's default time zone. A blog post date is part of its identifier, therefore it must be consistent for all users.

    • formatServerDateFull

      public String formatServerDateFull(Date date)
      Same as formatDateFull(Date), but doesn't perform time zone conversion.

      This is typically used for formatting the posting dates of news items, which must be represented the same for all users.

    • formatGivenString

      public String formatGivenString(String formatString, Date date)
      Formats the date and returns it as a string, using the given formatting pattern.

      The TimeZone specified in the constructor is used to convert the date from server time to the user's local time.

    • getCurrentDateTime

      public String getCurrentDateTime()
      Returns:
      the current date and time formatted as per formatDateTime(Date)
    • getCurrentDate

      public String getCurrentDate()
      Returns:
      the current date formatted as per format(Date)
    • getDateForBlogPost

      public String getDateForBlogPost(Date date)
      Returns:
      the given date time in editor blog post format
    • getTimeForBlogPost

      public String getTimeForBlogPost(Date date)
      Returns:
      the given time in editor blog post format
    • getCalendar

      public Calendar getCalendar()
      Returns:
      a Calendar for the TimeZone specified in the constructor.
    • getTimeZone

      public TimeZone getTimeZone()
      Returns:
      the TimeZone provided when this formatter was created.
      Since:
      2.7
    • formatMillis

      public static String formatMillis(long millis)
      Returns:
      a String representing the millisecond value in the format '[h:]mm:ss.S'. That is, hours will only be displayed if non-zero and any trailing zeroes in the milliseconds are truncated.