此日历不支持指定的时间。它应该在04/30/1900 00:00:00(格里高利日)和11/16/2077 23:59:59(格里高利日期)之间。 参数名称:时间
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ArgumentOutOfRangeException:此日历不支持指定的时间。它应该在04/30/1900 00:00:00(格里高利日)和11/16/2077 23:59:59(格里高利日期)之间。 参数名称:时间
我试图在MVC 5中使用[DataType(DataType.Date)]时遇到此错误与阿拉伯文化
由于
答案 0 :(得分:0)
在Windows中更改日期和时间设置>更改日历设置>将日历类型更改为Gregorian。
答案 1 :(得分:0)
我遇到了同样的问题,但在asp.net mvc中使用了日历工具。我将日历改为Gregorian,它解决了我的问题。
var culture = new CultureInfo(cultureCode, true);
//set Gregorian as default calendar
CalendarUtilities.ChangeCalendar(culture, new GregorianCalendar());
public class CalendarUtilities
{
private readonly Calendar newCal;
private readonly bool isGregorian;
public static void ChangeCalendar(CultureInfo ci, Calendar cal)
{
var util = new CalendarUtilities(cal);
// Is the new calendar already the current calendar?
if (util.CalendarExists(ci.DateTimeFormat.Calendar))
return;
// Is the new calendar supported?
if (Array.Exists(ci.OptionalCalendars, util.CalendarExists))
ci.DateTimeFormat.Calendar = cal;
}
private CalendarUtilities(Calendar cal)
{
newCal = cal;
// Is the new calendar a Gregorian calendar?
isGregorian = cal.GetType().Name.Contains("Gregorian");
}
private bool CalendarExists(Calendar cal)
{
if (cal.ToString() == newCal.ToString())
{
if (isGregorian)
{
if (((GregorianCalendar)cal).CalendarType ==
((GregorianCalendar)newCal).CalendarType)
return true;
}
else
{
return true;
}
}
return false;
}
}
答案 2 :(得分:0)
我提出这一希望可以节省其他时间 如果您使用的是.net core并出现此类错误 此日历不支持指定的时间。它应该在...之间。 用这样的东西 请注意,某些浏览器会出现错误,并非所有网络浏览器都会返回此错误 Firefox几乎不会在chrome上触发此错误,而IE和Edje会触发此类错误
[HttpPost]
public IActionResult SetLanguage(string culture, string returnUrl)
{
if (string.IsNullOrEmpty(culture))
{
return LocalRedirect(returnUrl);
}
CultureInfo cInfo = new CultureInfo(culture);
CultureInfo cInfoInvarian = new CultureInfo("en-GB");
cInfoInvarian.DateTimeFormat.ShortDatePattern = "dd-MM-yyyy";
cInfoInvarian.DateTimeFormat.ShortDatePattern = "dd-MM-yyyy";
cInfoInvarian.DateTimeFormat.Calendar = new GregorianCalendar();
cInfo.DateTimeFormat.Calendar = new GregorianCalendar();
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(cInfoInvarian, cInfo)),
new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
);
return LocalRedirect(returnUrl);
}