org.jfree.data.time

## Class Millisecond

- java.lang.Object
- - org.jfree.data.time.RegularTimePeriod
  - - org.jfree.data.time.Millisecond

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable, TimePeriod, MonthConstants

      public class Millisecond
      extends RegularTimePeriod
      implements java.io.Serializable

  Represents a millisecond. This class is immutable, which is a requirement for all `RegularTimePeriod` subclasses.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `FIRST_MILLISECOND_IN_SECOND` A constant for the first millisecond in a second.
    `static int` | `LAST_MILLISECOND_IN_SECOND` A constant for the last millisecond in a second.
    `(package private) static long` | `serialVersionUID` For serialization.

    - ### Fields inherited from class org.jfree.data.time.RegularTimePeriod

      `DEFAULT_TIME_ZONE, WORKING_CALENDAR`

    - ### Fields inherited from interface org.jfree.date.MonthConstants

      `APRIL, AUGUST, DECEMBER, FEBRUARY, JANUARY, JULY, JUNE, MARCH, MAY, NOVEMBER, OCTOBER, SEPTEMBER`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Millisecond()` Constructs a millisecond based on the current system time.
    `Millisecond(java.util.Date time)` Constructs a new millisecond using the default time zone.
    `Millisecond(java.util.Date time, java.util.TimeZone zone)` Deprecated. As of 1.0.13, use the constructor that specifies the locale also.
    `Millisecond(java.util.Date time, java.util.TimeZone zone, java.util.Locale locale)` Creates a millisecond.
    `Millisecond(int millisecond, int second, int minute, int hour, int day, int month, int year)` Creates a new millisecond.
    `Millisecond(int millisecond, Second second)` Constructs a millisecond.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `compareTo(java.lang.Object obj)` Returns an integer indicating the order of this Millisecond object relative to the specified object: negative == before, zero == same, positive == after.
    `boolean` | `equals(java.lang.Object obj)` Tests the equality of this object against an arbitrary Object.
    `long` | `getFirstMillisecond()` Returns the first millisecond of the second.
    `long` | `getFirstMillisecond(java.util.Calendar calendar)` Returns the first millisecond of the time period.
    `long` | `getLastMillisecond()` Returns the last millisecond of the second.
    `long` | `getLastMillisecond(java.util.Calendar calendar)` Returns the last millisecond of the time period.
    `long` | `getMillisecond()` Returns the millisecond.
    `Second` | `getSecond()` Returns the second.
    `long` | `getSerialIndex()` Returns a serial index number for the millisecond.
    `int` | `hashCode()` Returns a hash code for this object instance.
    `RegularTimePeriod` | `next()` Returns the millisecond following this one.
    `void` | `peg(java.util.Calendar calendar)` Recalculates the start date/time and end date/time for this time period relative to the supplied calendar (which incorporates a time zone).
    `RegularTimePeriod` | `previous()` Returns the millisecond preceding this one.

    - ### Methods inherited from class org.jfree.data.time.RegularTimePeriod

      `createInstance, downsize, getEnd, getFirstMillisecond, getLastMillisecond, getMiddleMillisecond, getMiddleMillisecond, getMiddleMillisecond, getMillisecond, getStart, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### serialVersionUID

          static final long serialVersionUID

      For serialization.
      See Also:
        Constant Field Values

    - #### FIRST_MILLISECOND_IN_SECOND

          public static final int FIRST_MILLISECOND_IN_SECOND

      A constant for the first millisecond in a second.
      See Also:
        Constant Field Values

    - #### LAST_MILLISECOND_IN_SECOND

          public static final int LAST_MILLISECOND_IN_SECOND

      A constant for the last millisecond in a second.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Millisecond

          public Millisecond()

      Constructs a millisecond based on the current system time.

    - #### Millisecond

          public Millisecond(int millisecond,
                             Second second)

      Constructs a millisecond.
      Parameters:
        `millisecond` - the millisecond (0-999).
        `second` - the second.

    - #### Millisecond

          public Millisecond(int millisecond,
                             int second,
                             int minute,
                             int hour,
                             int day,
                             int month,
                             int year)

      Creates a new millisecond.
      Parameters:
        `millisecond` - the millisecond (0-999).
        `second` - the second (0-59).
        `minute` - the minute (0-59).
        `hour` - the hour (0-23).
        `day` - the day (1-31).
        `month` - the month (1-12).
        `year` - the year (1900-9999).

    - #### Millisecond

          public Millisecond(java.util.Date time)

      Constructs a new millisecond using the default time zone.
      Parameters:
        `time` - the time.
      See Also:
        `Millisecond(Date, TimeZone)`

    - #### Millisecond

          public Millisecond(java.util.Date time,
                             java.util.TimeZone zone)

      Deprecated. As of 1.0.13, use the constructor that specifies the locale also.
      Creates a millisecond.
      Parameters:
        `time` - the instant in time.
        `zone` - the time zone.

    - #### Millisecond

          public Millisecond(java.util.Date time,
                             java.util.TimeZone zone,
                             java.util.Locale locale)

      Creates a millisecond.
      Parameters:
        `time` - the date-time (`null` not permitted).
        `zone` - the time zone (`null` not permitted).
        `locale` - the locale (`null` not permitted).
      Since:
        1.0.13

  - ### Method Detail

    - #### getSecond

          public Second getSecond()

      Returns the second.
      Returns:
        The second.

    - #### getMillisecond

          public long getMillisecond()

      Returns the millisecond.
      Returns:
        The millisecond.

    - #### getFirstMillisecond

          public long getFirstMillisecond()

      Returns the first millisecond of the second. This will be determined relative to the time zone specified in the constructor, or in the calendar instance passed in the most recent call to the `peg(Calendar)` method.
      Specified by:
        `getFirstMillisecond` in class `RegularTimePeriod`
      Returns:
        The first millisecond of the second.
      See Also:
        `getLastMillisecond()`

    - #### getLastMillisecond

          public long getLastMillisecond()

      Returns the last millisecond of the second. This will be determined relative to the time zone specified in the constructor, or in the calendar instance passed in the most recent call to the `peg(Calendar)` method.
      Specified by:
        `getLastMillisecond` in class `RegularTimePeriod`
      Returns:
        The last millisecond of the second.
      See Also:
        `getFirstMillisecond()`

    - #### peg

          public void peg(java.util.Calendar calendar)

      Recalculates the start date/time and end date/time for this time period relative to the supplied calendar (which incorporates a time zone).
      Specified by:
        `peg` in class `RegularTimePeriod`
      Parameters:
        `calendar` - the calendar (`null` not permitted).
      Since:
        1.0.3

    - #### previous

          public RegularTimePeriod previous()

      Returns the millisecond preceding this one.
      Specified by:
        `previous` in class `RegularTimePeriod`
      Returns:
        The millisecond preceding this one.

    - #### next

          public RegularTimePeriod next()

      Returns the millisecond following this one.
      Specified by:
        `next` in class `RegularTimePeriod`
      Returns:
        The millisecond following this one.

    - #### getSerialIndex

          public long getSerialIndex()

      Returns a serial index number for the millisecond.
      Specified by:
        `getSerialIndex` in class `RegularTimePeriod`
      Returns:
        The serial index number.

    - #### equals

          public boolean equals(java.lang.Object obj)

      Tests the equality of this object against an arbitrary Object.

      This method will return true ONLY if the object is a Millisecond object representing the same millisecond as this instance.

      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `obj` - the object to compare
      Returns:
        `true` if milliseconds and seconds of this and object are the same.

    - #### hashCode

          public int hashCode()

      Returns a hash code for this object instance. The approach described by Joshua Bloch in "Effective Java" has been used here:

      `http://developer.java.sun.com/developer/Books/effectivejava /Chapter3.pdf`

      Overrides:
        `hashCode` in class `java.lang.Object`
      Returns:
        A hashcode.

    - #### compareTo

          public int compareTo(java.lang.Object obj)

      Returns an integer indicating the order of this Millisecond object relative to the specified object: negative == before, zero == same, positive == after.
      Specified by:
        `compareTo` in interface `java.lang.Comparable`
      Parameters:
        `obj` - the object to compare
      Returns:
        negative == before, zero == same, positive == after.

    - #### getFirstMillisecond

          public long getFirstMillisecond(java.util.Calendar calendar)

      Returns the first millisecond of the time period.
      Specified by:
        `getFirstMillisecond` in class `RegularTimePeriod`
      Parameters:
        `calendar` - the calendar (`null` not permitted).
      Returns:
        The first millisecond of the time period.
      Throws:
        `java.lang.NullPointerException` - if `calendar` is `null`.
      See Also:
        `RegularTimePeriod.getLastMillisecond(Calendar)`

    - #### getLastMillisecond

          public long getLastMillisecond(java.util.Calendar calendar)

      Returns the last millisecond of the time period.
      Specified by:
        `getLastMillisecond` in class `RegularTimePeriod`
      Parameters:
        `calendar` - the calendar (`null` not permitted).
      Returns:
        The last millisecond of the time period.
      Throws:
        `java.lang.NullPointerException` - if `calendar` is `null`.
      See Also:
        `RegularTimePeriod.getFirstMillisecond(Calendar)`