<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_time(filename, tags):

 """
 Get most reliable timestamp from a picture, running down a couple of options.
 Filename, exif tags, modification time.
 """

    # use exif 'Image DateTime' field as the time
    if 'Image DateTime' in tags.keys():
        return time.strptime(str(tags['Image DateTime']), '%Y:%m:%d %H:%M:%S')

    # very fuzzy time machting on filename
    # TODO: very fuzzy part, now it just matches the iphone naming convention
    m = re.match('^(\d{4}-\d{2}-\d{2} \d{2}\.\d{2}\.\d{2}).*', filename)
    if m:
        return time.strptime(m.group(0), '%Y-%m-%d %H.%M.%S')

    # if all else fails use stat().st_mtime (consistent on windows/linux as last modification time)
    return time.localtime(Path(filename).stat().st_mtime)