void InitializeBuilders() { var timeZoneBuilder = new TimeZoneBuilder.TimeZoneBuilder(); timeZoneBuilder.Build(); TimeZones = timeZoneBuilder.TimeZones; var formatForwardLookup = new DateTimeFormatForwardLookup(); formatForwardLookup.Build(); _dateTimeFormatForwardLookups = formatForwardLookup.DateTimeFormatForwardLookups; var dateTimeFormatPart = new DateTimeFormatPart(TimeZones); dateTimeFormatPart.Build(); _dateTimeFormatsParts = dateTimeFormatPart.DateTimeFormatsParts; _dateTimeFormatPartOptions = dateTimeFormatPart.DateTimeFormatPartOptions; var timeFormatPartBuilder = new TimeFormatPartBuilder(TimeZones); timeFormatPartBuilder.Build(); _timeFormatPartOptions = timeFormatPartBuilder.TimeFormatPartOptions; var forwardLookupsForDotNet = new DateTimeFormatForwardLookupsForDotNet(); forwardLookupsForDotNet.Build(); _dateTimeFormatForwardLookupsForDotNet = forwardLookupsForDotNet.DateTimeFormatForwardLookupsForDotNetLu; var dateTimeFormatPartsForDotNet = new DateTimeFormatPartsForDotNet(); dateTimeFormatPartsForDotNet.Build(); _dateTimeFormatPartOptionsForDotNet = dateTimeFormatPartsForDotNet.DateTimeFormatPartOptionsForDotNet; }
private string GetFormatPartString(DateTimeFormatPart formatPart) { return(formatPart.Type switch { DateTimeFormatPartType.FreeText => formatPart.Text, DateTimeFormatPartType.DayWithLeadingZero => "dd", DateTimeFormatPartType.Day => "d", DateTimeFormatPartType.MonthWithLeadingZero => "MM", DateTimeFormatPartType.Month => "M", DateTimeFormatPartType.YearFull => "yyyy", DateTimeFormatPartType.YearShort => "yy", DateTimeFormatPartType.MonthName => "MMMM", DateTimeFormatPartType.HourWithLeadingZero => "HH", DateTimeFormatPartType.Hour => "H", DateTimeFormatPartType.Hour12WithLeadingZero => "hh", DateTimeFormatPartType.Hour12 => "h", DateTimeFormatPartType.MinuteWithLeadingZero => "mm", DateTimeFormatPartType.Minute => "m", DateTimeFormatPartType.SecondWithLeadingZero => "ss", DateTimeFormatPartType.Second => "s", DateTimeFormatPartType.AmPm => "AM/PM", _ => throw new ArgumentOutOfRangeException(nameof(formatPart)), });