diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/localization/DateWrapper.java b/extractor/src/main/java/org/schabi/newpipe/extractor/localization/DateWrapper.java index 0390ee12..f86efa9b 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/localization/DateWrapper.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/localization/DateWrapper.java @@ -28,8 +28,7 @@ public class DateWrapper implements Serializable { */ @Deprecated public DateWrapper(@NonNull Calendar calendar, boolean isApproximation) { - offsetDateTime = OffsetDateTime.ofInstant(calendar.toInstant(), ZoneOffset.UTC); - this.isApproximation = isApproximation; + this(OffsetDateTime.ofInstant(calendar.toInstant(), ZoneOffset.UTC), isApproximation); } public DateWrapper(@NonNull OffsetDateTime offsetDateTime) { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java index 3fb279b8..8b924cf9 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java @@ -21,7 +21,9 @@ import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLDecoder; +import java.time.LocalDate; import java.time.OffsetDateTime; +import java.time.ZoneOffset; import java.time.format.DateTimeParseException; import java.util.Collections; import java.util.HashMap; @@ -184,7 +186,11 @@ public class YoutubeParsingHelper { try { return OffsetDateTime.parse(textualUploadDate); } catch (DateTimeParseException e) { - throw new ParsingException("Could not parse date: \"" + textualUploadDate + "\"", e); + try { + return LocalDate.parse(textualUploadDate).atStartOfDay().atOffset(ZoneOffset.UTC); + } catch (DateTimeParseException e1) { + throw new ParsingException("Could not parse date: \"" + textualUploadDate + "\"", e1); + } } } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeFeedInfoItemExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeFeedInfoItemExtractor.java index cea38518..3945ff17 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeFeedInfoItemExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeFeedInfoItemExtractor.java @@ -8,7 +8,6 @@ import org.schabi.newpipe.extractor.stream.StreamType; import javax.annotation.Nullable; import java.time.OffsetDateTime; -import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; public class YoutubeFeedInfoItemExtractor implements StreamInfoItemExtractor { @@ -61,7 +60,7 @@ public class YoutubeFeedInfoItemExtractor implements StreamInfoItemExtractor { @Override public DateWrapper getUploadDate() throws ParsingException { try { - return new DateWrapper(OffsetDateTime.parse(getTextualUploadDate(), DateTimeFormatter.ISO_OFFSET_DATE_TIME)); + return new DateWrapper(OffsetDateTime.parse(getTextualUploadDate())); } catch (DateTimeParseException e) { throw new ParsingException("Could not parse date (\"" + getTextualUploadDate() + "\")", e); }