JobHoldUntil (Java Platform SE 8 )
Keywords: javax.print.attribute.standard.JobHoldUntil class
Date: 2026-03-16

javax.print.attribute.standard

## Class JobHoldUntil

- java.lang.Object
- - javax.print.attribute.DateTimeSyntax
  - - javax.print.attribute.standard.JobHoldUntil

- All Implemented Interfaces:
    Serializable, Cloneable, Attribute, PrintJobAttribute, PrintRequestAttribute

      public final class JobHoldUntil
      extends DateTimeSyntax
      implements PrintRequestAttribute, PrintJobAttribute

  Class JobHoldUntil is a printing attribute class, a date-time attribute, that specifies the exact date and time at which the job must become a candidate for printing.

  If the value of this attribute specifies a date-time that is in the future, the printer should add the `JobStateReason` value of JOB_HOLD_UNTIL_SPECIFIED to the job's `JobStateReasons` attribute, must move the job to the PENDING_HELD state, and must not schedule the job for printing until the specified date-time arrives.

  When the specified date-time arrives, the printer must remove the `JobStateReason` value of JOB_HOLD_UNTIL_SPECIFIED from the job's `JobStateReasons` attribute, if present. If there are no other job state reasons that keep the job in the PENDING_HELD state, the printer must consider the job as a candidate for processing by moving the job to the PENDING state.

  If the specified date-time has already passed, the job must be a candidate for processing immediately. Thus, one way to make the job immediately become a candidate for processing is to specify a JobHoldUntil attribute constructed like this (denoting a date-time of January 1, 1970, 00:00:00 GMT):

           JobHoldUntil immediately = new JobHoldUntil (new Date (0L));

  If the client does not supply this attribute in a Print Request and the printer supports this attribute, the printer must use its (implementation-dependent) default JobHoldUntil value at job submission time (unlike most job template attributes that are used if necessary at job processing time).

  To construct a JobHoldUntil attribute from separate values of the year, month, day, hour, minute, and so on, use a `Calendar` object to construct a `Date` object, then use the `Date` object to construct the JobHoldUntil attribute. To convert a JobHoldUntil attribute to separate values of the year, month, day, hour, minute, and so on, create a `Calendar` object and set it to the `Date` from the JobHoldUntil attribute.

  IPP Compatibility: Although IPP supports a "job-hold-until" attribute specified as a keyword, IPP does not at this time support a "job-hold-until" attribute specified as a date and time. However, the date and time can be converted to one of the standard IPP keywords with some loss of precision; for example, a JobHoldUntil value with today's date and 9:00pm local time might be converted to the standard IPP keyword "night". The category name returned by `getName()` gives the IPP attribute name.

  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `JobHoldUntil(Date dateTime)` Construct a new job hold until date-time attribute with the given `Date` value.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object object)` Returns whether this job hold until attribute is equivalent to the passed in object.
    `Class<? extends Attribute>` | `getCategory()` Get the printing attribute class which is to be used as the "category" for this printing attribute value.
    `String` | `getName()` Get the name of the category of which this attribute value is an instance.

    - ### Methods inherited from class javax.print.attribute.DateTimeSyntax

      `getValue, hashCode, toString`

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

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

- - ### Constructor Detail

    - #### JobHoldUntil

          public JobHoldUntil(Date dateTime)

      Construct a new job hold until date-time attribute with the given `Date` value.
      Parameters:
        `dateTime` - `Date` value.
      Throws:
        `NullPointerException` - (unchecked exception) Thrown if `dateTime` is null.

  - ### Method Detail

    - #### equals

          public boolean equals(Object object)

      Returns whether this job hold until attribute is equivalent to the passed in object. To be equivalent, all of the following conditions must be true:
      1. `object` is not null.
      2. `object` is an instance of class JobHoldUntil.
      3. This job hold until attribute's `Date` value and `object`'s `Date` value are equal.
      Overrides:
        `equals` in class `DateTimeSyntax`
      Parameters:
        `object` - Object to compare to.
      Returns:
        True if `object` is equivalent to this job hold until attribute, false otherwise.
      See Also:
        `Object.hashCode()`, `HashMap`

    - #### getCategory

          public final Class<? extends Attribute> getCategory()

      Get the printing attribute class which is to be used as the "category" for this printing attribute value.

      For class JobHoldUntil, the category is class JobHoldUntil itself.

      Specified by:
        `getCategory` in interface `Attribute`
      Returns:
        Printing attribute class (category), an instance of class `java.lang.Class`.

    - #### getName

          public final String getName()

      Get the name of the category of which this attribute value is an instance.

      For class JobHoldUntil, the category name is `"job-hold-until"`.

      Specified by:
        `getName` in interface `Attribute`
      Returns:
        Attribute category name.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.