exFATではディレクトリエントリ(85タイプのレコード)に、CWA のタイムスタンプに関連してタイムゾーン情報が CWA 順に1バイトずつ保存されています。
日本のタイムゾーン(+9)の場合には、タイムゾーンの値として 0xA4 が設定されることになりますが、この値は 15分単位でカウントしているので以下の計算になるようです。(詳細はSANS資料P41辺りを参照)
0xA4
↓
10100100
↓
0100100(最上位ビットをオフにする)
↓
36
↓
36/4=9
プラスの場合の計算なので、マイナスのタイムゾーンについては補数を計算する必要があるようですが、詳細は確認していません。補数の戻し方って、-1 してからビット反転でよいのだろうか・・・
0xEC ↓ 11101100 ↓ 1101100(最上位ビットをオフ) ↓ 101100(マイナス) ↓ 101100 - 1 ------ 101011 ↓ 010100(ビット反転) ↓ 20 ↓ 20/4 ↓ 5(GMT-5 or EST)
exFATにおいてカサブランカのタイムゾーンでファイルを保存すると、タイムゾーンの値としては「0x80」が設定されますが、ファイルをJSTタイムゾーンの状態で exFAT のローカルボリュームにコピーすると、タイムゾーン値は 0xA4 に更新されて JST タイムゾーンとして保存されます。
タイムゾーン値が設定されることにより、ローカル時刻として保存されている日時が、どのタイムゾーンのローカルタイムとして保存されたのかが exFAT では把握できるようになりますね。