# Create Custom Culture

## Content

You can modify the culture string and create a custom culture using the **CultureInfo** class.

The following table lists the class variables, default values, and basic descriptions.

| **Variable Name** | **Default Value** | **Description** |
| ------------- | ------------- | ----------- |
| currencySymbol | "\u00A4" | The dollar is "$" |
| numberDecimalSeparator | "." | Decimal point |
| numberGroupSeparator | "," | Thousand separator |
| arrayGroupSeparator | ";" | Separator for array constant in the formula |
| listSeparator | "," | Separator for function arguments in the formula |
| aMDesignator | "AM" |  |
| pMDesignator | "PM" |  |
| abbreviatedMonthNames | ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ""] | Formatter is "MMM" |
| abbreviatedDayNames | ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] | Formatter is "ddd" |
| abbreviatedMonthGenitiveNames | ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ""] | Formatter is "MMM" |
| dayNames | ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] | Formatter is "dddd" |
| fullDateTimePattern | "dddd, dd MMMM yyyy HH:mm:ss" | Standard date formatter "F" |
| longDatePattern | "dddd, dd MMMM yyyy" | Standard date formatter "D" |
| longTimePattern | "HH:mm:ss" | Standard date formatter "T" and "U" |
| monthDayPattern | "MMMM dd" | Standard date formatter "M" and "m" |
| monthNames | ["January", "February", "March", "April", "May", "June", "July","August", "September", "October", "November", "December", ""] | Formatter is "M" or "MM" |
| monthGenitiveNames | ["January", "February", "March", "April", "May", "June", "July","August", "September", "October", "November", "December", ""] | Formatter is "MMMM" |
| rFC1123Pattern | "ddd, dd MMM yyyy HH':'mm':'ss 'GMT'" | Standard date formatter "R" and "r" |
| shortDatePattern | "MM/dd/yyyy" | Standard date formatter "d" |
| shortTimePattern | "HH:mm" | Standard date formatter "t" |
| sortableDateTimePattern | "yyyy'-'MM'-'dd'T'HH':'mm':'ss" | Standard date formatter "s" |
| universalSortableDateTimePattern | "yyyy'-'MM'-'dd HH':'mm':'ss'Z'" | Standard date formatter "u" |
| yearMonthPattern | "yyyy MMMM" | Standard date formatter "y" and "Y" |

You can display the custom culture by setting the cell format using the [GeneralFormatter](/spreadjs/api/v16/classes/GC.Spread.Formatter.GeneralFormatter) class.

The following code sample creates a custom culture and sets a date-time formatter for cells (1,0) and (3,0) and a number formatter for cell (0,0).

```JavaScript
var myCulture = new GC.Spread.Common.CultureInfo();
myCulture.NumberFormat.currencySymbol = "€"
myCulture.NumberFormat.numberDecimalSeparator = ",";
myCulture.NumberFormat.numberGroupSeparator = ".";
myCulture.NumberFormat.arrayGroupSeparator = ";";
myCulture.NumberFormat.arrayListSeparator = "\\";
myCulture.NumberFormat.listSeparator = ";";
myCulture.DateTimeFormat.amDesignator = "";
myCulture.DateTimeFormat.pmDesignator = "";
myCulture.DateTimeFormat.abbreviatedMonthNames = ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez", ""];
myCulture.DateTimeFormat.abbreviatedDayNames = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
myCulture.DateTimeFormat.abbreviatedMonthGenitiveNames = ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez", ""];
myCulture.DateTimeFormat.dayNames = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"];
myCulture.DateTimeFormat.fullDateTimePattern = "dddd, d. MMMM yyyy HH:mm:ss";
myCulture.DateTimeFormat.longDatePattern = "dddd, d. MMMM yyyy";
myCulture.DateTimeFormat.longTimePattern = "HH:mm:ss";
myCulture.DateTimeFormat.monthDayPattern = "dd MMMM";
myCulture.DateTimeFormat.monthNames = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember", ""];
myCulture.DateTimeFormat.monthGenitiveNames = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember", ""];
myCulture.DateTimeFormat.shortDatePattern = "dd.MM.yyyy";
myCulture.DateTimeFormat.shortTimePattern = "HH:mm";
myCulture.DateTimeFormat.yearMonthPattern = "MMMM yyyy";

//add one culture
GC.Spread.Common.CultureManager.addCultureInfo("de-DE", myCulture);

//switch to "de-DE" culture
GC.Spread.Common.CultureManager.culture("de-DE");
var d = new Date();

//With culture
activeSheet.setValue(1, 0, new Date(d.setDate(d.getDate() + 1)));
activeSheet.getCell(1, 0).formatter("mmm");
var dvalue = 12345.6789;
activeSheet.setColumnWidth(0, 200);
activeSheet.setColumnWidth(1, 200);
activeSheet.setColumnWidth(2, 200);
activeSheet.setValue(0, 0, dvalue);
activeSheet.getCell(0, 0).formatter("###,###.00");
activeSheet.setValue(2, 0, new Date(d.setDate(d.getDate() + 1)));

//With culture
activeSheet.getCell(3, 0).formatter("yyyy/mmm/dddd");
activeSheet.setValue(3, 0, new Date());
```