Tôi đã một trang web mà viết một ngày như thế này:Instances của CultureInfo (từ cùng một nền văn hóa) thay đổi dựa trên hệ điều hành
CultureInfo cultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures).FirstOrDefault(c => string.Equals(c.TwoLetterISOLanguageName, MvcApplication.Language));
return string.Concat(date.Day, ".", cultureInfo.DateTimeFormat.GetAbbreviatedMonthName(date.Month));
Trong cả hai máy tính của tôi (Windows 7, Service Pack 1, văn hóa Tây Ban Nha) và máy chủ (Windows Server 2012, Văn hóa tiếng Anh) MvcApplication.Language
là es
vì vậy văn hóa tôi nhận được từ danh sách là: es-ES
.
Tôi hy vọng cả hai đều viết cùng một chuỗi (chúng có nền văn hóa khác nhau, nhưng tôi không sử dụng CurrentCulture
). Tuy nhiên, kết quả là abr
trong máy tính của tôi và Abr.
trong máy chủ.
Tôi đã thử điều này được phân lập từ MvcApplication.Language
bằng cách sử dụng LinqPAD nhưng nó vẫn khác nhau. Tôi đã in các mảng AbbreviatedDayNames
và AbbreviatedMonthNames
và chúng khác nhau trong mỗi máy tính.
Tôi có làm gì sai hoặc đây là hành vi mong đợi không? Làm thế nào tôi có thể làm để làm cho nó hoàn toàn độc lập với Windows/User Culture?