# Class SimpleDateFormat

java.lang.Object
com.codename1.l10n.Format
com.codename1.l10n.DateFormat
com.codename1.l10n.SimpleDateFormat

All Implemented Interfaces:
  `Cloneable`

public class SimpleDateFormat extends DateFormat

A class for parsing and formatting dates with a given pattern, compatible with the Java 6 API, as in the examples here: https://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

To localize the formatted dates, see the discussion Format a localized date in Codename One.

- ## Field Summary

  ### Fields inherited from class DateFormat

  `DEFAULT, FULL, LONG, MEDIUM, SHORT`
  Modifier and Type
  Field
  Description
  `static final int`
  `DEFAULT`
  Constant for default style (MEDIUM) parsing/formatting pattern.
  `static final int`
  `FULL`
  Constant for full style parsing/formatting pattern.
  `static final int`
  `LONG`
  Constant for long style parsing/formatting pattern.
  `static final int`
  `MEDIUM`
  Constant for medium style parsing/formatting pattern.
  `static final int`
  `SHORT`
  Constant for short style parsing/formatting pattern.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SimpleDateFormat()`
  Construct a SimpleDateFormat with no pattern.
  `SimpleDateFormat(String pattern)`
  Construct a SimpleDateFormat with a given pattern.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `applyPattern(String pattern)`
  Apply a new pattern.
  `Object`
  `clone()`
  `boolean`
  `equals(Object o)`
  Indicates whether some other object is "equal to" this one.
  `String`
  `format(Date source)`
  Format a given date.
  `DateFormatSymbols`
  `getDateFormatSymbols()`
  Get the date format symbols for parsing/formatting textual components of dates in a localization sensitive way.
  `int`
  `hashCode()`
  Returns a hash code value for the object.
  `static boolean`
  `isRestrictMonthNameLength()`

  ###### Returns

  `Date`
  `parse(String source)`
  Parses text from a string to produce a Date.
  `void`
  `setDateFormatSymbols(DateFormatSymbols newSymbols)`
  Apply new date format symbols for parsing/formatting textual components of dates in a localisation sensitive way.
  `static void`
  `setRestrictMonthNameLength(boolean restrict)`
  Enables or disables truncating of localized month names so that they match the number of pattern characters that triggered their lookup.
  `String`
  `toPattern()`

  ###### Returns

  ### Methods inherited from class DateFormat

  `format, getDateInstance, getDateInstance, getDateTimeInstance, getInstance, getTimeInstance, getTimeInstance, parseObject`
  Modifier and Type
  Method
  Description
  `String`
  `format(Object obj)`
  Format a given object.
  `static final DateFormat`
  `getDateInstance()`
  Get a DateFormat instance with default style for date (SHORT).
  `static final DateFormat`
  `getDateInstance(int style)`
  Get a DateFormat instance that uses a given style for dates.
  `static final DateFormat`
  `getDateTimeInstance(int dateStyle, int timeStyle)`
  Get a DateFormat instance that uses a given style for dates and times.
  `static final DateFormat`
  `getInstance()`
  Get a DateFormat instance with default style for date/time (SHORT/SHORT).
  `static final DateFormat`
  `getTimeInstance()`
  Get a DateFormat instance with default style for time (SHORT).
  `static final DateFormat`
  `getTimeInstance(int style)`
  Get a DateFormat instance that uses a given style for times.
  `Object`
  `parseObject(String source)`
  NOT IMPLEMENTED - use SimpleDateFormat for parsing instead.

  ### Methods inherited from class Object

  `getClass, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `final Class`
  `getClass()`
  Returns the runtime class of an object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes current thread to wait until another thread invokes the method or the method for this object.
  `final void`
  `wait(long timeout)`
  Causes current thread to wait until either another thread invokes the method or the method for this object, or a specified amount of time has elapsed.
  `final void`
  `wait(long timeout, int nanos)`
  Causes current thread to wait until another thread invokes the method or the method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.

- ## Constructor Details

  - ### SimpleDateFormat

    public SimpleDateFormat()
    Construct a SimpleDateFormat with no pattern.

  - ### SimpleDateFormat

    public SimpleDateFormat(String pattern)

    Construct a SimpleDateFormat with a given pattern.

    ###### Parameters

    - `pattern`

- ## Method Details

  - ### isRestrictMonthNameLength

    public static boolean isRestrictMonthNameLength()

    ###### Returns

    Returns:
      `true` if localized month names should be truncated to the requested pattern length.

  - ### setRestrictMonthNameLength

    public static void setRestrictMonthNameLength(boolean restrict)

    Enables or disables truncating of localized month names so that they match the number of pattern characters that triggered their lookup.

    ###### Parameters

    - `restrict`: @param restrict `true` to truncate localized month names to the length requested by the pattern, `false` to keep the platform provided value as-is (default behaviour).

  - ### toPattern

    public String toPattern()

    ###### Returns

    the pattern

  - ### getDateFormatSymbols

    public DateFormatSymbols getDateFormatSymbols()

    Get the date format symbols for parsing/formatting textual components of dates in a localization sensitive way.

    ###### Returns

    current symbols.

  - ### setDateFormatSymbols

    public void setDateFormatSymbols(DateFormatSymbols newSymbols)

    Apply new date format symbols for parsing/formatting textual components of dates in a localisation sensitive way.

    ###### Parameters

    - `newSymbols`: new format symbols.

  - ### applyPattern

    public void applyPattern(String pattern)

    Apply a new pattern.

    ###### Parameters

    - `pattern`: the pattern to set

  - ### equals

    public boolean equals(Object o)
    Description copied from class: `Object`
    Indicates whether some other object is "equal to" this one. The equals method implements an equivalence relation: It is reflexive: for any reference value x, x.equals(x) should return true. It is symmetric: for any reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true. It is transitive: for any reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true. It is consistent: for any reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the object is modified. For any non-null reference value x, x.equals(null) should return false. The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any reference values x and y, this method returns true if and only if x and y refer to the same object (x==y has the value true).
    Overrides:
      `equals` in class `DateFormat`

  - ### hashCode

    public int hashCode()
    Returns a hash code value for the object. This method is supported for the benefit of hashtables such as those provided by java.util.Hashtable. The general contract of hashCode is: Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result. It is not required that if two objects are unequal according to the equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hashtables. As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.)
    Overrides:
      `hashCode` in class `DateFormat`

  - ### clone

    public Object clone()
    Overrides:
      `clone` in class `DateFormat`

  - ### format

    public String format(Date source)
    Description copied from class: `DateFormat`

    Format a given date.

    ###### Parameters

    - `source`: date to be formatted.

    ###### Returns

    formatted date.

    Overrides:
      `format` in class `DateFormat`

  - ### parse

    public Date parse(String source) throws ParseException
    Parses text from a string to produce a Date.
    Overrides:
      `parse` in class `DateFormat`
    Throws:
      `ParseException`