阿拉伯文化“ar-sa”DateTime错误

时间:2011-11-11 13:57:31

标签: c# asp.net .net telerik

我有以下情况: 我的网站开发用于不同的文化(主要是阿拉伯语和英语) 当用户选择文化" ar-sa" (来自Internet Explorer选项)所有日期时间选择器都以Hijri格式转换。在我的一个页面中,我使用了RadTimePicker telerik控件,当我从visual studio运行此页面时没有出现错误,但是当我们在站点上部署此页面时,出现以下错误:

  

有效值介于1318和1450之间。参数名称:年

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

请有人能给我一个提示,从哪里开始找到错误

提前致谢

5 个答案:

答案 0 :(得分:2)

在.NET中使用CultureInfo“ar-sa”创建的任何日期时间对象将使用UmAlQuraCalendar对象,该对象指定有效日期的年份必须在1318到1450之间。检查此文档的.NET文档和您等着瞧。对于我的项目,我必须加载没有文化的日期,然后根据当前文化的日历最小和最大年份范围检查其范围,如果超出该范围,则在解析为日期时间之前将值转换为该范围内的值。被赋予了适当的文化信息对象。请注意,.NET日期时间对象总是格里高利。要在另一个日历中查看日期作为日期,您必须始终通过与您正在使用的文化对应的日历对象查看日期。

答案 1 :(得分:0)

http://www.telerik.com/community/forums/winforms/calendar-and-datetimepicker/valid-values-are-between-1318-and-1450-inclusive-parameter-name-year.aspx涵盖了类似用途。

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

答案 2 :(得分:0)

您托管的服务器在哪?日期时间格式因计算机控制面板中的设置而异。

如果您的站点托管在美国服务器上,那么您需要相关地更改日期时间上下文。

答案 3 :(得分:0)

PUT文化财产为 culture =“英语(美国)”

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

比使用任何文化。

答案 4 :(得分:0)

在后面的代码中,将文化的日历设置为格鲁吉亚语。请参阅以下有关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();