All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.adobe.internal.xmp.XMPDateTime Maven / Gradle / Ivy

The newest version!
// =================================================================================================
// ADOBE SYSTEMS INCORPORATED
// Copyright 2006 Adobe Systems Incorporated
// All Rights Reserved
//
// NOTICE:  Adobe permits you to use, modify, and distribute this file in accordance with the terms
// of the Adobe license agreement accompanying it.
// =================================================================================================

package com.adobe.internal.xmp;

import java.util.Calendar;
import java.util.TimeZone;


/**
 * The XMPDateTime-class represents a point in time up to a resolution of nano
 * seconds. Dates and time in the serialized XMP are ISO 8601 strings. There are utility functions
 * to convert to the ISO format, a Calendar or get the Timezone. The fields of
 * XMPDateTime are:
 * 
    *
  • month - The month in the range 1..12. *
  • day - The day of the month in the range 1..31. *
  • minute - The minute in the range 0..59. *
  • hour - The time zone hour in the range 0..23. *
  • minute - The time zone minute in the range 0..59. *
  • nanoSecond - The nano seconds within a second. Note: if the XMPDateTime is * converted into a calendar, the resolution is reduced to milli seconds. *
  • timeZone - a TimeZone-object. *
* DateTime values are occasionally used in cases with only a date or only a time component. A date * without a time has zeros for all the time fields. A time without a date has zeros for all date * fields (year, month, and day). */ public interface XMPDateTime extends Comparable { /** @return Returns the year, can be negative. */ int getYear(); /** @param year Sets the year */ void setYear(int year); /** @return Returns The month in the range 1..12. */ int getMonth(); /** @param month Sets the month 1..12 */ void setMonth(int month); /** @return Returns the day of the month in the range 1..31. */ int getDay(); /** @param day Sets the day 1..31 */ void setDay(int day); /** @return Returns hour - The hour in the range 0..23. */ int getHour(); /** @param hour Sets the hour in the range 0..23. */ void setHour(int hour); /** @return Returns the minute in the range 0..59. */ int getMinute(); /** @param minute Sets the minute in the range 0..59. */ void setMinute(int minute); /** @return Returns the second in the range 0..59. */ int getSecond(); /** @param second Sets the second in the range 0..59. */ void setSecond(int second); /** * @return Returns milli-, micro- and nano seconds. * Nanoseconds within a second, often left as zero? */ int getNanoSecond(); /** * @param nanoSecond Sets the milli-, micro- and nano seconds. * Granularity goes down to milli seconds. */ void setNanoSecond(int nanoSecond); /** @return Returns the time zone. */ TimeZone getTimeZone(); /** @param tz a time zone to set */ void setTimeZone(TimeZone tz); /** * This flag is set either by parsing or by setting year, month or day. * @return Returns true if the XMPDateTime object has a date portion. */ boolean hasDate(); /** * This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. * @return Returns true if the XMPDateTime object has a time portion. */ boolean hasTime(); /** * This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. * @return Returns true if the XMPDateTime object has a defined timezone. */ boolean hasTimeZone(); /** * @return Returns a Calendar (only with milli second precision).
* Note: the dates before Oct 15th 1585 (which normally fall into validity of * the Julian calendar) are also rendered internally as Gregorian dates. */ Calendar getCalendar(); /** * @return Returns the ISO 8601 string representation of the date and time. */ String getISO8601String(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy