73 lines
2.1 KiB
Java
73 lines
2.1 KiB
Java
package org.schabi.newpipe.extractor.localization;
|
|
|
|
|
|
import javax.annotation.Nonnull;
|
|
import java.io.Serializable;
|
|
import java.time.OffsetDateTime;
|
|
import java.time.ZoneOffset;
|
|
import java.util.Calendar;
|
|
import java.util.GregorianCalendar;
|
|
|
|
/**
|
|
* A wrapper class that provides a field to describe if the date/time is precise or just an
|
|
* approximation.
|
|
*/
|
|
public class DateWrapper implements Serializable {
|
|
@Nonnull
|
|
private final OffsetDateTime offsetDateTime;
|
|
private final boolean isApproximation;
|
|
|
|
/**
|
|
* @deprecated Use {@link #DateWrapper(OffsetDateTime)} instead.
|
|
*/
|
|
@Deprecated
|
|
public DateWrapper(@Nonnull final Calendar calendar) {
|
|
//noinspection deprecation
|
|
this(calendar, false);
|
|
}
|
|
|
|
/**
|
|
* @deprecated Use {@link #DateWrapper(OffsetDateTime, boolean)} instead.
|
|
*/
|
|
@Deprecated
|
|
public DateWrapper(@Nonnull final Calendar calendar, final boolean isApproximation) {
|
|
this(OffsetDateTime.ofInstant(calendar.toInstant(), ZoneOffset.UTC), isApproximation);
|
|
}
|
|
|
|
public DateWrapper(@Nonnull final OffsetDateTime offsetDateTime) {
|
|
this(offsetDateTime, false);
|
|
}
|
|
|
|
public DateWrapper(@Nonnull final OffsetDateTime offsetDateTime,
|
|
final boolean isApproximation) {
|
|
this.offsetDateTime = offsetDateTime.withOffsetSameInstant(ZoneOffset.UTC);
|
|
this.isApproximation = isApproximation;
|
|
}
|
|
|
|
/**
|
|
* @return the wrapped date/time as a {@link Calendar}.
|
|
* @deprecated use {@link #offsetDateTime()} instead.
|
|
*/
|
|
@Deprecated
|
|
@Nonnull
|
|
public Calendar date() {
|
|
return GregorianCalendar.from(offsetDateTime.toZonedDateTime());
|
|
}
|
|
|
|
/**
|
|
* @return the wrapped date/time.
|
|
*/
|
|
@Nonnull
|
|
public OffsetDateTime offsetDateTime() {
|
|
return offsetDateTime;
|
|
}
|
|
|
|
/**
|
|
* @return if the date is considered is precise or just an approximation (e.g. service only
|
|
* returns an approximation like 2 weeks ago instead of a precise date).
|
|
*/
|
|
public boolean isApproximation() {
|
|
return isApproximation;
|
|
}
|
|
}
|