from datetime import datetime import pytz from PIL.ExifTags import TAGS def get_image_timestamp(img, timezone): exif = img._getexif() if not exif: raise ValueError("No EXIF metadata found") found_timestamp = None for (idx, tag) in TAGS.items(): if tag == 'DateTime': found_timestamp = exif.get(idx) elif tag == 'DateTimeOriginal': found_timestamp = exif.get(idx) if found_timestamp: dt = datetime.strptime(found_timestamp, '%Y:%m:%d %H:%M:%S') tz = pytz.timezone(timezone) return tz.localize(dt)