環境はDelphi 10.1 Berlin。
TIniFileやTMemIniFileで日時を保存したり、保存した日時を読み込むには、WriteDate/WriteTime /WriteDateTime/ReadDate/ReadTime/ReadDateTimeメソッドを使用します。
問題は、これらのメソッドが内部で次の関数を使用していることです。
function System.SysUtils.DateToStr(const DateTime: TDateTime): string;
function System.SysUtils.TimeToStr(const DateTime: TDateTime): string;
function System.SysUtils.DateTimeToStr(const DateTime: TDateTime): string;
function System.SysUtils.StrToDate(const S: string): TDateTime;
function System.SysUtils.StrToTime(const S: string): TDateTime;
function System.SysUtils.StrToDateTime(const S: string): TDateTime;
いずれもグローバル変数FormatSettingsに依存しており、OSの言語・日時の設定が変わると、返値の値が変わります。
そのため、保存した日時を読み込めなくなる可能性があります。
TIniFileやTMemIniFileを使うときは、グローバル変数FormatSettingsの値に注意しておく必要があります。
上記の関数には引数にTFormatSettingsをとる関数も用意されています。
TIniFileやTMemIniFileを継承して日時を扱うメソッドをオーバーライドするのもいいかもしれません。