UniNews
University news from Greek and international universities in one place
Loading...
Searching...
No Matches
uninews.dates Namespace Reference

Functions

str|None parse_date (str|None text)
 
str now_sortable ()
 
str to_sortable (datetime value)
 
datetime|None _parse_iso (str text)
 
datetime|None _parse_rfc822 (str text)
 
datetime|None _parse_numeric (str text)
 
datetime|None _parse_words (str text)
 
int|None _month_number (str name)
 
datetime|None _build (int year, int month, int day, str text)
 

Variables

str SORTABLE_FORMAT = "%Y-%m-%d %H:%M:%S"
 
dict MONTH_PREFIXES
 
 NUMERIC_DATE = re.compile(r"\b(\d{1,2})[/.-](\d{1,2})[/.-](\d{4})\b")
 
 DAY_MONTH_YEAR = re.compile(r"\b(\d{1,2})\s+([^\W\d_]{3,})\.?,?\s+(\d{4})\b")
 
 MONTH_DAY_YEAR = re.compile(r"\b([^\W\d_]{3,})\.?\s+(\d{1,2}),?\s+(\d{4})\b")
 
 TIME = re.compile(r"\b(\d{1,2}):(\d{2})(?::(\d{2}))?\b")
 

Detailed Description

Turn the date text found on sites into one sortable format.

Output is "YYYY-MM-DD HH:MM:SS". Dates with a timezone are converted to UTC;
dates without one are kept as written.

Function Documentation

◆ _build()

datetime | None uninews.dates._build ( int  year,
int  month,
int  day,
str  text 
)
protected

◆ _month_number()

int | None uninews.dates._month_number ( str  name)
protected

◆ _parse_iso()

datetime | None uninews.dates._parse_iso ( str  text)
protected

◆ _parse_numeric()

datetime | None uninews.dates._parse_numeric ( str  text)
protected

◆ _parse_rfc822()

datetime | None uninews.dates._parse_rfc822 ( str  text)
protected

◆ _parse_words()

datetime | None uninews.dates._parse_words ( str  text)
protected

◆ now_sortable()

str uninews.dates.now_sortable ( )

◆ parse_date()

str | None uninews.dates.parse_date ( str | None  text)
Return a sortable date string, or None if the text isn't recognised.

◆ to_sortable()

str uninews.dates.to_sortable ( datetime  value)

Variable Documentation

◆ DAY_MONTH_YEAR

uninews.dates.DAY_MONTH_YEAR = re.compile(r"\b(\d{1,2})\s+([^\W\d_]{3,})\.?,?\s+(\d{4})\b")

◆ MONTH_DAY_YEAR

uninews.dates.MONTH_DAY_YEAR = re.compile(r"\b([^\W\d_]{3,})\.?\s+(\d{1,2}),?\s+(\d{4})\b")

◆ MONTH_PREFIXES

dict uninews.dates.MONTH_PREFIXES
Initial value:
1= {
2 "jan": 1, "feb": 2, "mar": 3, "apr": 4, "may": 5, "jun": 6,
3 "jul": 7, "aug": 8, "sep": 9, "oct": 10, "nov": 11, "dec": 12,
4 "ιαν": 1, "φεβ": 2, "μαρ": 3, "απρ": 4, "μαι": 5, "ιουν": 6,
5 "ιουλ": 7, "αυγ": 8, "σεπ": 9, "οκτ": 10, "νοε": 11, "δεκ": 12,
6}

◆ NUMERIC_DATE

uninews.dates.NUMERIC_DATE = re.compile(r"\b(\d{1,2})[/.-](\d{1,2})[/.-](\d{4})\b")

◆ SORTABLE_FORMAT

str uninews.dates.SORTABLE_FORMAT = "%Y-%m-%d %H:%M:%S"

◆ TIME

uninews.dates.TIME = re.compile(r"\b(\d{1,2}):(\d{2})(?::(\d{2}))?\b")