我有多语种网站。 但是当我将我的文化改为阿拉伯语时,然后在表单提交后它不发送日期。 这是我的模型类
[Required(ErrorMessage = "Company foundation date is required.")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:d MMM yyyy}", ApplyFormatInEditMode = true)]
public DateTime CompanyFoundationDate { get; set; }
我的观点
@Html.TextBoxFor(m => m.CompanyFoundationDate, new { @class = "form-input", id = "foundationDate" })
在Jquery里面我写了这个
$.datepicker.setDefaults($.datepicker.regional['en']);
$("#foundationDate").datepicker(
{
dateFormat: 'd M yy',
changeMonth: true,
changeYear: true
});
$("#foundationDate").datepicker('setDate', '@(Model.CompanyFoundationDate.ToDatePickerFormate())');
$("#foundationDate").datepicker('option', 'maxDate', new Date());
当我将文化改为英语而不是阿拉伯语时,工作正常。
在阿拉伯语中我选择的日期是2009年2月12日,但在我的行动得到{0001-01-01T00:00:00}
答案 0 :(得分:0)
var cultureInfo = CultureInfo.CreateSpecificCulture("ar-SA");
cultureInfo.DateTimeFormat.Calendar = cultureInfo.OptionalCalendars[5];
var dateTimeString = new String(new[] {
'1',
'4',
'-',
'ي',
'و',
'ل',
'ي',
'و',
'-',
'2',
'0',
'1',
'5',
' ',
'0',
'4',
':',
'4',
'4',
':',
'5',
'1',
' ',
'م'
});
var dateTime = DateTime.Parse(dateTimeString, cultureInfo);
The resulting DateTime is:
2015-07-14T16:44:51
If you want to use DateTime.ParseExact the format is d-MMMM-yyyy hh:mm:ss tt:
var dateTime = DateTime.ParseExact(dateTimeString, "d-MMMM-yyyy hh:mm:ss tt", cultureInfo);
You should also consider using DateTime.TryParse or DateTime.TryParseExact for better flow of code if you encounter an invalid formatted string.
答案 1 :(得分:0)
但是当我将我的文化改为阿拉伯语时,则表格提交后不发送日期
因为您尝试使用“en”区域设置输入发送表单。
$.datepicker.setDefaults($.datepicker.regional['en']);