/* * <p>Returns the length of the duration in milli-seconds.</p> * * <p>If the seconds field carries more digits than milli-second order, * those will be simply discarded (or in other words, rounded to zero.) * For example, for any <code>Date</code> value <code>x</code>,</p> * <pre> * <code>new Duration("PT10.00099S").getTimeInMills(x) == 10000</code>. * <code>new Duration("-PT10.00099S").getTimeInMills(x) == -10000</code>. * </pre> * * <p/> * Note that this method uses the {@link #addTo(Date)} method, * which may work incorrectly with <code>Duration</code> objects with * very large values in its fields. See the {@link #addTo(Date)} * method for details. * * @param startInstant * The length of a month/year varies. The <code>startInstant</code> is * used to disambiguate this variance. Specifically, this method * returns the difference between <code>startInstant</code> and * <code>startInstant+duration</code>. * * @throws NullPointerException * If the startInstant parameter is null. * * @return milliseconds between <code>startInstant</code> and * <code>startInstant</code> plus this <code>Duration</code> * * @see #getTimeInMillis(Calendar) */ public long getTimeInMillis(java.util.Date startInstant) { java.util.Calendar cal = new java.util.GregorianCalendar(); cal.setTime(startInstant); this.addTo(cal); return(getCalendarTimeInMillis(cal) - startInstant.getTime()); }
public void testParseDateFormat() { java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd.MM.yyyy"); java.text.ParsePosition zeroPP = new java.text.ParsePosition(0); java.util.Date result = null; result = sdf.parse("05.09.1975", zeroPP); Assert.IsNotNull(result); Assert.AreEqual <int>(75, result.getYear(), "Year 75 expected"); Assert.AreEqual <int>(9, result.getMonth(), "Month 9 expected"); Assert.AreEqual <int>(5, result.getDate(), "Day of month 5 expected"); }
/* * Adds this duration to a {@link Date} object. * * <p/> * The given date is first converted into * a {@link java.util.GregorianCalendar}, then the duration * is added exactly like the {@link #addTo(Calendar)} method. * * <p/> * The updated time instant is then converted back into a * {@link Date} object and used to update the given {@link Date} object. * * <p/> * This somewhat redundant computation is necessary to unambiguously * determine the duration of months and years. * * @param date * A date object whose value will be modified. * @throws NullPointerException * if the date parameter is null. */ public void addTo(java.util.Date date) { // check data parameter if (date == null) { throw new java.lang.NullPointerException( "Cannot call " + this.getClass().getName() + "#addTo(Date date) with date == null." ); } java.util.Calendar cal = new java.util.GregorianCalendar(); cal.setTime(date); this.addTo(cal); date.setTime(getCalendarTimeInMillis(cal)); }
/** * Compares this {@code Timestamp} object with a supplied {@code Timestamp} * object. * * @param theObject * the timestamp to compare with this {@code Timestamp} object, * passed as an {@code Object}. * @return <dd> * <dl> * {@code 0} if the two {@code Timestamp} objects are equal in time * </dl> * <dl> * a value {@code < 0} if this {@code Timestamp} object is before * the supplied {@code Timestamp} and a value * </dl> * <dl> * {@code > 0} if this {@code Timestamp} object is after the * supplied {@code Timestamp} * </dl> * </dd> * @throws ClassCastException * if the supplied object is not a {@code Timestamp} object. */ public override int compareTo(java.util.Date theObject) { if (theObject is Timestamp) { return(this.compareTo((Timestamp)theObject)); } if (this.getTime() < theObject.getTime()) { return(-1); } if (this.getTime() > theObject.getTime()) { return(1); } if (this.getNanos() % 1000000 > 0) { return(1); } return(0); }
/** * Convert a Date object to a DOS date/time field. * @param time the <code>Date</code> to convert * @return the date as a <code>ZipLong</code> */ public static ZipLong toDosTime(java.util.Date time) { return(new ZipLong(toDosTime(time.getTime()))); }
/** * Set this entry's modification time. * * @param time This entry's new modification time. */ public void setModTime(java.util.Date time) { modTime = time.getTime() / MILLIS_PER_SECOND; }