More in this section

Forums / Bugs & Issues / Displayed Date

Displayed Date

2 posts, 0 answered
  1. Haresh
    Haresh avatar
    0 posts
    Registered:
    23 Jan 2017
    22 Jun
    Link to this post
    I Have a site on which I am working on it right now. it has 2 languages EN and AR. Now the problem is that in arabic Site dates are shown in hijri format but I want to show it as gregorian format. 

    for example Date in en site looks like this : 31 July 2016 but same date in arabic site is Displayed like شوال 26, 1437 I want to display all the dates as en site format that is in english
    if there any setting available Please do let me know
  2. Victor Leontyev
    Victor Leontyev avatar
    65 posts
    Registered:
    01 Jul 2014
    27 Jun in reply to Haresh
    Link to this post

    Hi Haresh,

    First solution is to create language with specific ar culture.(For example ar-AE)  Because in .Net many arabic cultures has Gregorian calendar.

    Culture:ar; Year:1438
    Culture:ar-001; Year:2017
    Culture:ar-AE; Year:2017
    Culture:ar-BH; Year:2017
    Culture:ar-DJ; Year:2017
    Culture:ar-DZ; Year:2017
    Culture:ar-EG; Year:2017
    Culture:ar-ER; Year:2017
    Culture:ar-IL; Year:2017
    Culture:ar-IQ; Year:2017
    Culture:ar-JO; Year:2017
    Culture:ar-KM; Year:2017
    Culture:ar-KW; Year:2017
    Culture:ar-LB; Year:2017
    Culture:ar-LY; Year:2017
    Culture:ar-MA; Year:2017
    Culture:ar-MR; Year:2017
    Culture:ar-OM; Year:2017
    Culture:ar-PS; Year:2017
    Culture:ar-QA; Year:2017
    Culture:ar-SA; Year:1438
    Culture:ar-SD; Year:2017
    Culture:ar-SO; Year:2017
    Culture:ar-SS; Year:2017
    Culture:ar-SY; Year:2017
    Culture:ar-TD; Year:2017
    Culture:ar-TN; Year:2017
    Culture:ar-YE; Year:2017

     

    Second approach is to create extension for proper datetime formatting and change your widget templates.

    public static class DateTimeExtension
    {
            public static string ToStringGregorianCalendar(this DateTime dt, string format)
            {
                var culture = new CultureInfo(Thread.CurrentThread.CurrentUICulture.Name);
                GregorianCalendar calendar = new GregorianCalendar();
                culture.DateTimeFormat.Calendar = calendar;
                return dt.ToString(format, culture);
            }
    }

     

    And in widget templates you can use it like that:

    @dateTime.ToStringGregorianCalendar("dd/MM/yyyy")

     

     

2 posts, 0 answered