スマホやデジタルカメラで撮った写真には、撮影日時がEXIF情報として書き込まれます。
この撮影日時、なぜかタイムゾーンの考慮のない生の現地時刻が書かれるので、たとえば日本より時間が遅れている国に行ったとき、初日の写真を撮影日時で並べると・・・
古い
↑
渡航先の空港の写真
日本の空港の写真
渡航先の宿の写真
↓
新しい
こんな感じで、順番が入れ替わったりしていました。これがあとで整理するときに微妙に不便。
なので、EXIFの最初の仕様を作るときに、撮影日時をUTC(協定世界時)で記録するとかタイムゾーン情報を入れるとかしてくれてたら!
・・・とずっと思っていました。

最近気がついたんですが、Flickr上の写真のEXIF情報にタイムゾーンらしき項目が増えていました。おお!
自分が過去にアップロードした写真をさかのぼって調べてみると、先代メインスマホ(Android 9→10)で撮ったのにはなくて、今のメインスマホ(Android 11→12)とサブスマホ(Android 11)のにはこの"Offset Time Original"の項目があります。
Android 11から対応したんかな?
バージョン 1.2.0
2020 年 4 月 1 日androidx.exifinterface:exifinterface:1.2.0 がリリースされました。バージョン 1.2.0 に含まれる commit については、こちらをご覧ください。
1.1.0 以降の主な変更
PNG ファイルに EXIF を追加するためのサポートが追加されました
WebP ファイルと EXIF データのみのストリームのサポートを追加しました
指定の MIME タイプがサポートされているかどうかを確認する API が追加されました
オフセット時間のタグ TAG_OFFSET_TIME、TAF_OFFSET_TIME_DIGITIZED、TAG_OFFSET_TIME_ORIGINAL をさらに追加しました
プログラミングのことはよくわからないけど、AndroidアプリでこのEXIF項目の読み書きができるようになったのはこのタイミングみたいです。
でもこの"Offset Time Original"って、Android独自の仕様なのか、EXIF自体の仕様なのかどっちなんやろ?
撮影日時の情報は、UTCとタイムゾーンを組み合わせたものではなく、機種依存のローカルタイム(現地時刻)のみで記録され、タイムゾーン情報が記録されていないので、海外旅行や出張などタイムゾーンをまたいで移動、生活する際に問題となることもある。なお、タイムゾーン情報が記録できるカメラなどもあるが機種依存の機能である。Exif共通の仕様ではv2.31においてUTCからのオフセット値としてタイムゾーン情報が記録できるようになったが、対応しているカメラやソフトウェアは確認されていない。
ふむふむ。EXIFのv2.31からはタイムゾーン情報の記録に対応するようになったと。

でもさっきの"Exif Version - 0220"って、v2.20ってこと?
だとすると、今の"Offset Time Original"はAndroidの独自仕様ってことになるんやろか?
別環境でも正しい撮影順で並んでくれるのかとか、GPSログファイルと時刻をマッチングして位置情報を埋め込んだりするときに時差補正をちゃんとやってくれるのかとか、そのあたりが気になります。
別環境でも正しい撮影順で並んでくれるのかについて、少しテストをしてみました。
コメント