差し込み印刷やその他の操作を実行する VSTO アプリがあります。
差し込み印刷データベースは Excel データベースであり、DateTime
(dd/MM/YYYY) として保存されるフィールドがいくつかあります (例: 29/04/2012)。私の問題は、Excel では日付が適切に表示されるのに、Word では別の形式 (MM/dd/yyyy) (例: 4/29/2012) で表示されることです。VSTO アプリでこの日付を取得しようとすると、文字列の形式が間違っていることを示す変換エラーがスローされます。
これはすべて同じマシンで行われます。VSTO のカルチャ情報を en-US に変更すると、正常に機能します。
// This way fails
edictoActual.FechaEdicto = Convert.ToDateTime(fields(fieldFechaEdicto).value);
// This way Works
IFormatProvider Formato = new System.Globalization.CultureInfo("en-US", true);
edictoActual.FechaEdicto = Convert.ToDateTime(fields(fieldFechaEdicto).value,Formato);
なぜこうなった?