77

ページ内の DateTime 値を解析していますが、指定された書式文字列の 1 つと明確に一致しているにもかかわらずASP.NET WebForms、日付文字列がメソッドによって拒否され続けています。DateTime.TryParseExact()

自宅の開発マシンでは失敗するようですが、本番サーバーでは動作するため、ローカルの日付設定が関係していると考えていますが、IFormatProvider (CultureInfo)オブジェクトをパラメーターとして指定してもこのエラーが発生します

コードは次のとおりです。

DateTime startDate;
string[] formats = { "dd/MM/yyyy", "dd/M/yyyy", "d/M/yyyy", "d/MM/yyyy",
                    "dd/MM/yy", "dd/M/yy", "d/M/yy", "d/MM/yy"};

var errStart = row.FindControl("errStartDate"); //my date format error message
if (!DateTime.TryParseExact(txtStartDate.Text, formats, null, DateTimeStyles.None, out startDate))
{
    errStart.Visible = true; //we get here even with a string like "20/08/2012"
    return false;
}
else
{
    errStart.Visible = false;
}

null FormatProvider上記では a を指定しています、このパラメーターに関してCultureInfoオブジェクトを 指定すると、同じ問題が発生します。(CultureInfo provider = new CultureInfo("en-US"))

私は何が欠けていますか?

4

5 に答える 5

127

試す:

 DateTime.TryParseExact(txtStartDate.Text, formats, 
        System.Globalization.CultureInfo.InvariantCulture,
        System.Globalization.DateTimeStyles.None, out startDate)
于 2012-08-17T04:49:19.210 に答える
2
string DemoLimit = "02/28/2018";
 string pattern = "MM/dd/yyyy";
 CultureInfo enUS = new CultureInfo("en-US"); 
 DateTime.TryParseExact(DemoLimit, pattern, enUS, 
                     DateTimeStyles.AdjustToUniversal, out datelimit);

詳細についてはhttps://msdn.microsoft.com/en-us/library/ms131044(v=vs.110).aspx

于 2018-02-05T17:52:00.590 に答える