#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
https://feedparser.readthedocs.io/en/latest/date-parsing.html
"""

from datetime import datetime
from dateutil.parser import parse
from email.utils import parsedate, parsedate_to_datetime

def now():
    """
    ISO 8601 Timestamp.

    Returns
    -------
    date : ?
        ISO 8601 Timestamp.
    """
    date = datetime.now().isoformat()
    return date


def current_time():
    """
    Print HH:MM:SS timestamp.

    Returns
    -------
    date : ?
        HH:MM:SS timestamp.
    """
    now = datetime.now()
    time = now.strftime("%H:%M:%S")
    return time


def validate(date):
    """
    Validate date format.

    Parameters
    ----------
    date : str
        Timestamp.

    Returns
    -------
    date : str
        Timestamp.
    """
    try:
        parse(date)
    except:
        date = now()
    return date


def rfc2822_to_iso8601(date):
    """
    Convert RFC 2822 into ISO 8601.

    Parameters
    ----------
    date : str
        RFC 2822 Timestamp.

    Returns
    -------
    date : str
        ISO 8601 Timestamp.
    """
    if parsedate(date):
        try:
            date = parsedate_to_datetime(date)
            date = date.isoformat()
        except:
            date = now()
    return date