我有以下情况: 我的网站开发用于不同的文化(主要是阿拉伯语和英语) 当用户选择文化" ar-sa" (来自Internet Explorer选项)所有日期时间选择器都以Hijri格式转换。在我的一个页面中,我使用了RadTimePicker telerik控件,当我从visual studio运行此页面时没有出现错误,但是当我们在站点上部署此页面时,出现以下错误:
有效值介于1318和1450之间。参数名称:年
我尝试在我的同事(在本地IIS上)的PC上部署该页面时出现错误。然后我尝试使用IIS在我的电脑上部署它,这次没有错误!!
请有人能给我一个提示,从哪里开始找到错误
提前致谢
答案 0 :(得分:2)
在.NET中使用CultureInfo“ar-sa”创建的任何日期时间对象将使用UmAlQuraCalendar对象,该对象指定有效日期的年份必须在1318到1450之间。检查此文档的.NET文档和您等着瞧。对于我的项目,我必须加载没有文化的日期,然后根据当前文化的日历最小和最大年份范围检查其范围,如果超出该范围,则在解析为日期时间之前将值转换为该范围内的值。被赋予了适当的文化信息对象。请注意,.NET日期时间对象总是格里高利。要在另一个日历中查看日期作为日期,您必须始终通过与您正在使用的文化对应的日历对象查看日期。
答案 1 :(得分:0)
至于为什么它在一台机器而不是另一台机器上工作,我怀疑在某个地方的某个地方使用了一个隐含的文化(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();