Klein Фотку посмотрел. Всё оказалось гораздо интереснее. Как я и предполагал, виноваты кривые метаданные Redmi. Я предполагал, что они что-то перемудрили с часовыми поясами, но нет, они на них просто забили, хотя казалось бы, чего стоит их записать? Информация-то есть у телефона. Часовых поясов там вообще нет, проблема не в них, программа просто по умолчанию берет текущий. Но зато там есть поля SubSecTimeOriginal и SubSecTimeDigitized, туда пишутся миллисекунды даты съемки. Знаете сколько там? 845474 миллисекунд 🙂 Вот вам и разница в двадцать минут 🙂
Это конечно баг, программа должна игнорировать некорректное значение, это мы исправим, конечно же. Но я не перестаю удивляться новым креативным способам испортить метаданные от производители железа…