constructor()

in src/formattingService/formattingService.ts [1223:1262]


    constructor(culture: Culture) {
        let calendar: Calendar = culture.calendar;
        let patterns: any = calendar.patterns;
        let monthAbbreviations: any = calendar["months"]["namesAbbr"];
        let cultureHasMonthAbbr: boolean = monthAbbreviations && monthAbbreviations[0];
        let yearMonthPattern: string = patterns["Y"];
        let monthDayPattern: string = patterns["M"];
        let fullPattern: string = patterns["f"];
        let longTimePattern: string = patterns["T"];
        let shortTimePattern: string = patterns["t"];
        let separator: string = fullPattern.indexOf(",") > -1 ? ", " : " ";

        let hasYearSymbol: boolean = yearMonthPattern.indexOf("yyyy'") === 0 && yearMonthPattern.length > 6 && yearMonthPattern[6] === "\'";
        this.YearPattern = hasYearSymbol ? yearMonthPattern.substr(0, 7) : "yyyy";

        let yearPos: number = fullPattern.indexOf("yy");
        let monthPos: number = fullPattern.indexOf("MMMM");
        this.MonthPattern = cultureHasMonthAbbr && monthPos > -1 ? (yearPos > monthPos ? "MMM yyyy" : "yyyy MMM") : yearMonthPattern;

        this.DayPattern = cultureHasMonthAbbr ? monthDayPattern.replace("MMMM", "MMM") : monthDayPattern;

        let minutePos: number = fullPattern.indexOf("mm");
        let pmPos: number = fullPattern.indexOf("tt");
        let shortHourPattern: string = pmPos > -1 ? shortTimePattern.replace(":mm ", "") : shortTimePattern;
        this.HourPattern = yearPos < minutePos ? this.DayPattern + separator + shortHourPattern : shortHourPattern + separator + this.DayPattern;

        this.MinutePattern = shortTimePattern;

        this.SecondPattern = longTimePattern;

        this.MillisecondPattern = longTimePattern.replace("ss", "ss.fff");

        // Special cases
        switch (culture.name) {
            case "fi-FI":
                this.DayPattern = this.DayPattern.replace("'ta'", ""); // Fix for finish 'ta' suffix for month names.
                this.HourPattern = this.HourPattern.replace("'ta'", "");
                break;
        }
    }