', '<'),
"uploader" : extr('
', '
'),
- "date" : self.parse_datetime(extr(
- '>Posted:
', ' | '), "%Y-%m-%d %H:%M"),
+ "date" : self.parse_datetime_iso(extr(
+ '>Posted:
', ' | ')),
"parent" : extr(
'>Parent:
"),
- "date" : self.parse_datetime(extr(
- ' 19:
date_string = date_string[:19]
- return self.parse_datetime(date_string, "%Y-%m-%dT%H:%M:%S")
+ return self.parse_datetime_iso(date_string)
def _revisions(self, posts):
return itertools.chain.from_iterable(
diff --git a/gallery_dl/extractor/lensdump.py b/gallery_dl/extractor/lensdump.py
index 1f81407d..5435c99f 100644
--- a/gallery_dl/extractor/lensdump.py
+++ b/gallery_dl/extractor/lensdump.py
@@ -119,8 +119,7 @@ class LensdumpImageExtractor(LensdumpBase, Extractor):
'property="image:width" content="', '"')),
"height": text.parse_int(extr(
'property="image:height" content="', '"')),
- "date" : self.parse_datetime(extr(
- '", "<")),
"size": text.parse_bytes(extr(" | ", " | ")),
- "date": self.parse_datetime(
- extr("
", " | ").strip(), "%Y-%m-%d %H:%M"),
+ "date": self.parse_datetime_iso(extr("
", " | ").strip()),
})
if self.config("chapter-reverse"):
diff --git a/gallery_dl/extractor/manganelo.py b/gallery_dl/extractor/manganelo.py
index 75ef0ab1..3d88b2d0 100644
--- a/gallery_dl/extractor/manganelo.py
+++ b/gallery_dl/extractor/manganelo.py
@@ -50,10 +50,10 @@ class ManganeloChapterExtractor(ManganeloExtractor, ChapterExtractor):
extr = text.extract_from(page)
data = {
- "date" : self.parse_datetime(extr(
- '"datePublished": "', '"')[:19], "%Y-%m-%dT%H:%M:%S"),
- "date_updated": self.parse_datetime(extr(
- '"dateModified": "', '"')[:19], "%Y-%m-%dT%H:%M:%S"),
+ "date" : self.parse_datetime_iso(extr(
+ '"datePublished": "', '"')[:19]),
+ "date_updated": self.parse_datetime_iso(extr(
+ '"dateModified": "', '"')[:19]),
"manga_id" : text.parse_int(extr("comic_id =", ";")),
"chapter_id" : text.parse_int(extr("chapter_id =", ";")),
"manga" : extr("comic_name =", ";").strip('" '),
diff --git a/gallery_dl/extractor/mangataro.py b/gallery_dl/extractor/mangataro.py
index 77c07743..029bc2e9 100644
--- a/gallery_dl/extractor/mangataro.py
+++ b/gallery_dl/extractor/mangataro.py
@@ -40,10 +40,8 @@ class MangataroChapterExtractor(MangataroBase, ChapterExtractor):
"chapter_minor": str(round(minor, 5))[1:] if minor else "",
"chapter_id" : text.parse_int(chapter_id),
"chapter_url" : comic["url"],
- "date" : self.parse_datetime(
- comic["datePublished"], "%Y-%m-%dT%H:%M:%S%z"),
- "date_updated" : self.parse_datetime(
- comic["dateModified"], "%Y-%m-%dT%H:%M:%S%z"),
+ "date" : self.parse_datetime_iso(comic["datePublished"]),
+ "date_updated" : self.parse_datetime_iso(comic["dateModified"]),
}
def images(self, page):
diff --git a/gallery_dl/extractor/misskey.py b/gallery_dl/extractor/misskey.py
index f58560c8..628f7e3f 100644
--- a/gallery_dl/extractor/misskey.py
+++ b/gallery_dl/extractor/misskey.py
@@ -48,13 +48,11 @@ class MisskeyExtractor(BaseExtractor):
note["instance"] = self.instance
note["instance_remote"] = note["user"]["host"]
note["count"] = len(files)
- note["date"] = self.parse_datetime(
- note["createdAt"], "%Y-%m-%dT%H:%M:%S.%f%z")
+ note["date"] = self.parse_datetime_iso(note["createdAt"])
yield Message.Directory, note
for note["num"], file in enumerate(files, 1):
- file["date"] = self.parse_datetime(
- file["createdAt"], "%Y-%m-%dT%H:%M:%S.%f%z")
+ file["date"] = self.parse_datetime_iso(file["createdAt"])
note["file"] = file
url = file["url"]
yield Message.Url, url, text.nameext_from_url(url, note)
diff --git a/gallery_dl/extractor/naverchzzk.py b/gallery_dl/extractor/naverchzzk.py
index 55fbf75e..e1dc1362 100644
--- a/gallery_dl/extractor/naverchzzk.py
+++ b/gallery_dl/extractor/naverchzzk.py
@@ -38,10 +38,10 @@ class NaverChzzkExtractor(Extractor):
for data["num"], file in enumerate(files, 1):
if extra := file.get("extraJson"):
file.update(util.json_loads(extra))
- file["date"] = self.parse_datetime(
- file["createdDate"], "%Y-%m-%dT%H:%M:%S.%f%z")
- file["date_updated"] = self.parse_datetime(
- file["updatedDate"], "%Y-%m-%dT%H:%M:%S.%f%z")
+ file["date"] = self.parse_datetime_iso(
+ file["createdDate"])
+ file["date_updated"] = self.parse_datetime_iso(
+ file["updatedDate"])
data["file"] = file
url = file["attachValue"]
yield Message.Url, url, text.nameext_from_url(url, data)
diff --git a/gallery_dl/extractor/nekohouse.py b/gallery_dl/extractor/nekohouse.py
index 77298b0f..f865cbe1 100644
--- a/gallery_dl/extractor/nekohouse.py
+++ b/gallery_dl/extractor/nekohouse.py
@@ -59,8 +59,8 @@ class NekohousePostExtractor(NekohouseExtractor):
'class="scrape__user-name', '').rpartition(">")[2].strip()),
"title" : text.unescape(extr(
'class="scrape__title', '').rpartition(">")[2]),
- "date" : self.parse_datetime(extr(
- 'datetime="', '"')[:19], "%Y-%m-%d %H:%M:%S"),
+ "date" : self.parse_datetime_iso(extr(
+ 'datetime="', '"')[:19]),
"content": text.unescape(extr(
'class="scrape__content">', "
").strip()),
}
diff --git a/gallery_dl/extractor/nozomi.py b/gallery_dl/extractor/nozomi.py
index b4ef1741..6a78a47a 100644
--- a/gallery_dl/extractor/nozomi.py
+++ b/gallery_dl/extractor/nozomi.py
@@ -9,7 +9,7 @@
"""Extractors for https://nozomi.la/"""
from .common import Extractor, Message
-from .. import text
+from .. import text, dt
def decode_nozomi(n):
@@ -49,10 +49,9 @@ class NozomiExtractor(Extractor):
post["character"] = self._list(post.get("character"))
try:
- post["date"] = self.parse_datetime(
- post["date"] + ":00", "%Y-%m-%d %H:%M:%S%z")
+ post["date"] = dt.parse_iso(post["date"] + ":00")
except Exception:
- post["date"] = None
+ post["date"] = dt.NONE
post.update(data)
diff --git a/gallery_dl/extractor/paheal.py b/gallery_dl/extractor/paheal.py
index cf73db83..c87a69e7 100644
--- a/gallery_dl/extractor/paheal.py
+++ b/gallery_dl/extractor/paheal.py
@@ -53,8 +53,7 @@ class PahealExtractor(Extractor):
extr("