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;
}
}