FarsiLibrary.Utils.PersianCultureInfo.CreateDateTimeFormatInfo C# (CSharp) Method

CreateDateTimeFormatInfo() protected method

protected CreateDateTimeFormatInfo ( ) : DateTimeFormatInfo
return System.Globalization.DateTimeFormatInfo
        protected internal DateTimeFormatInfo CreateDateTimeFormatInfo()
        {
            if (format == null)
            {
                format = new DateTimeFormatInfo
                {
                    AbbreviatedDayNames = PersianDateTimeFormatInfo.AbbreviatedDayNames,
                    AbbreviatedMonthGenitiveNames = PersianDateTimeFormatInfo.AbbreviatedMonthGenitiveNames,
                    AbbreviatedMonthNames = PersianDateTimeFormatInfo.AbbreviatedMonthNames,
                    AMDesignator = PersianDateTimeFormatInfo.AMDesignator,
                    DateSeparator = PersianDateTimeFormatInfo.DateSeparator,
                    DayNames = PersianDateTimeFormatInfo.DayNames,
                    FirstDayOfWeek = PersianDateTimeFormatInfo.FirstDayOfWeek,
                    FullDateTimePattern = PersianDateTimeFormatInfo.FullDateTimePattern,
                    LongDatePattern = PersianDateTimeFormatInfo.LongDatePattern,
                    LongTimePattern = PersianDateTimeFormatInfo.LongTimePattern,
                    MonthDayPattern = PersianDateTimeFormatInfo.MonthDayPattern,
                    MonthGenitiveNames = PersianDateTimeFormatInfo.MonthGenitiveNames,
                    MonthNames = PersianDateTimeFormatInfo.MonthNames,
                    PMDesignator = PersianDateTimeFormatInfo.PMDesignator,
                    ShortDatePattern = PersianDateTimeFormatInfo.ShortDatePattern,
                    ShortestDayNames = PersianDateTimeFormatInfo.ShortestDayNames,
                    ShortTimePattern = PersianDateTimeFormatInfo.ShortTimePattern,
                    TimeSeparator = PersianDateTimeFormatInfo.TimeSeparator,
                    YearMonthPattern = PersianDateTimeFormatInfo.YearMonthPattern
                };

                //Make format information readonly to fix
                //cloning problems that might happen with
                //other controls.
                ReflectionHelper.SetField(format, FieldNames.IsReadonly, true);
            }

            return format;
        }

Usage Example

        public void Setting_Culture_To_PersianCultureInfo_Will_Set_DateTimeFormat()
        {
            var cip = new PersianCultureInfo();
            var format = cip.CreateDateTimeFormatInfo();

            using(new CultureSwitchContext(cip))
            {
                Assert.That(cip.DateTimeFormat, Is.Not.Null);
                Assert.AreEqual(format.AbbreviatedDayNames, cip.DateTimeFormat.AbbreviatedDayNames);
                Assert.AreEqual(format.AbbreviatedMonthGenitiveNames, cip.DateTimeFormat.AbbreviatedMonthGenitiveNames);
                Assert.AreEqual(format.AbbreviatedMonthNames, cip.DateTimeFormat.AbbreviatedMonthNames);
                Assert.AreEqual(format.AMDesignator, cip.DateTimeFormat.AMDesignator);
                Assert.AreEqual(format.PMDesignator, cip.DateTimeFormat.PMDesignator);
                Assert.AreEqual(format.Calendar, cip.DateTimeFormat.Calendar);
                Assert.AreEqual(format.DayNames, cip.DateTimeFormat.DayNames);
                Assert.AreEqual(format.DateSeparator, cip.DateTimeFormat.DateSeparator);
                Assert.AreEqual(format.ShortDatePattern, cip.DateTimeFormat.ShortDatePattern);
                Assert.AreEqual(format.ShortestDayNames, cip.DateTimeFormat.ShortestDayNames);
                Assert.AreEqual(format.ShortTimePattern, cip.DateTimeFormat.ShortTimePattern);
                Assert.AreEqual(format.YearMonthPattern, cip.DateTimeFormat.YearMonthPattern);
                Assert.AreEqual(format.TimeSeparator, cip.DateTimeFormat.TimeSeparator);
            }
        }