ユーザーがフランス語でコンテンツを表示している場合、カルチャを次のように設定します。
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
そして、英語では次のように設定します:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-CA");
現在、日付は en-CA 形式で保存されているため、常に次を使用して明示的にフォーマットします。
var dateFormatPattern = "M/d/yyyy"; // "MM/dd/yyyy"
var dt = DateTime.MinValue;
if (DateTime.TryParseExact(dateString, dateFormatPattern, null, System.Globalization.DateTimeStyles.None, out dtResult))
{
dt = dtResult;
}
現在は英語で動作しますが、フランス語モードでは解析が失敗します。
デバッグ モードでは、dateString の値がフランス語と英語の両方で同じであることがわかりますが、IDE が形式を変更している可能性がありますか? 文字列値なので、できないと思います。
では、なぜ失敗するのでしょうか。