阿拉伯文化;DateTime错误

本文关键字:错误 DateTime 文化 阿拉伯 | 更新日期: 2023-09-27 18:14:06

我有以下场景:我的网站开发工作与不同的文化(主要是阿拉伯语和英语)当用户选择区域性"ar-sa"(从internet explorer选项中)时,所有日期时间选择器都转换为回历格式。在我的一个页面中,我使用了RadTimePicker teleerik控件,当我从visual studio运行此页面时,没有出现错误,但当我们在网站上部署此页面时,出现以下错误:

有效值在1318到1450之间。参数名称:year

我试图在同事的pc上部署页面(在本地IIS上),出现错误。然后我试着在我的电脑上使用IIS部署它这次没有错误!!

请问谁能给我提示一下从哪里开始查找错误

Thanks in advance

阿拉伯文化;DateTime错误

在。net中使用CultureInfo "ar-sa"创建的任何日期时间对象都将使用UmAlQuraCalendar对象,该对象指定有效日期的年份必须在1318和1450之间。检查这个对象的。net文档,你会看到。对于我的项目,我必须加载没有区域性的日期,然后根据当前区域性的日历最小年和最大年范围检查其范围,如果超出该范围,则在解析为给定适当区域性信息对象的日期时间之前,将该值转换为该范围内的值。请注意,. net日期时间对象总是使用公历。若要将该日期视为另一个日历中的日期,必须始终通过与所使用的区域性相对应的calendar对象查看该日期。

http://www.telerik.com/community/forums/winforms/calendar-and-datetimepicker/valid-values-are-between-1318-and-1450-inclusive-parameter-name-year.aspx也有类似的用法。

至于为什么它在一台机器上工作而不是在另一台机器上,我怀疑在某个地方使用了隐式文化之一(CurrentCulture和currentuicculture),这可能与您显式使用ar-SA冲突,也可能不冲突,这取决于它是什么。

您托管在哪个服务器上?日期时间格式根据计算机控制面板中的设置而变化。

如果您的网站托管在美国服务器上,那么您需要更改相关的datetime上下文

PUT文化属性为culture="English (United States)"

 <telerik:raddatepicker id="dt_DOB" runat="server" culture="English (United States)">
            </telerik:raddatepicker>

则使用任何区域性。

在后面的代码中,将文化的日历设置为始终为格鲁吉亚日历。参见下面的示例,在mypage.aspx

上使用Telerik DateTimePicker

mypage.aspx:

<telerik:RadDateTimePicker ID="CtrlStartPeriod" runat="server">
<DateInput DateFormat="G" DisplayDateFormat="G" runat="server"></DateInput>
</telerik:RadDateTimePicker>

mypage.aspx.cs:

protected override void OnInit(EventArgs e)
{
  base.OnInit(e);
  CtrlStartPeriod.DateInput.Culture.DateTimeFormat.Calendar = new GregorianCalendar();