MVC 4 Преобразовать дату хиджры в григорианскую дату в представлении?

1

Я создаю многоязычное веб-приложение MVC 4 (английский, испанский, арабский...), для части интернационализации я следил за этим учебным пособием, все до сих пор прекрасно, за исключением небольших деталей, при выборе арабского языка все данные даты отображаются в Hijri (02/04/1436), когда я хочу григорианский календарь, и поскольку мне нужно, чтобы CultureInfo была динамичной, я не могу установить стандартную/глобальную культуру для веб-приложения. есть ли способ решить эту проблему, указав дату принятия конкретной культуры?

Модель

    [Display(Name = "EntryDate", ResourceType = typeof(Resources.i18n))]
    [DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime EntryDate { get; set; }

Посмотреть

<td>@Html.DisplayFor(modelItem => item.EntryDate)</td>
  • 1
    Вы проверили следующий ответ stackoverflow.com/a/11064810/499930
  • 0
    Спасибо, это было полезно :)
Теги:
asp.net-mvc
asp.net-mvc-4

2 ответа

1
Лучший ответ

Я нашел его, спасибо всем.

CultureInfo arSA = new CultureInfo("ar-SA");
arSA.DateTimeFormat.Calendar = new HijriCalendar();
var dateValue = DateTime.ParseExact("29/08/1434", "dd/MM/yyyy", arSA);

он возвращается 7/7/2013

1

Вы можете использовать приведенный ниже код, чтобы получить культуру на основе выбранной опции и соответствующим образом преобразовать дату.

CultureInfo us = new CultureInfo("en-US");
string shortUsDateFormatString = us.DateTimeFormat.ShortDatePattern;
string shortUsTimeFormatString = us.DateTimeFormat.ShortTimePattern;

Это поможет вам получить контроль над датой на основе выбранного варианта и отобразить их в вашем конкретном формате.

  • 0
    Спасибо, это помогло мне найти ответ :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню