2013-04-26 10 views
5

के आधार पर बदलते मैं एक वेब साइट है जो इस तरह की एक तारीख लिखता है:उदाहरण ओएस

CultureInfo cultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures).FirstOrDefault(c => string.Equals(c.TwoLetterISOLanguageName, MvcApplication.Language)); 
return string.Concat(date.Day, ".", cultureInfo.DateTimeFormat.GetAbbreviatedMonthName(date.Month)); 

दोनों मेरे पीसी में (विंडोज 7, सर्विस पैक 1, स्पेनिश संस्कृति) और सर्वर (विंडोज सर्वर 2012, अंग्रेजी संस्कृति) MvcApplication.Languagees है इसलिए सूची से प्राप्त संस्कृति यह है: es-ES

मुझे उम्मीद है कि वे दोनों एक ही स्ट्रिंग लिखेंगे (उनके पास विभिन्न संस्कृतियां हैं, लेकिन मैं CurrentCulture का उपयोग नहीं कर रहा हूं)। हालांकि परिणाम मेरे पीसी में abr और सर्वर में Abr. हैं।

मैंने का उपयोग करके MvcApplication.Language से अलग करने की कोशिश की है लेकिन यह अभी भी अलग है। मैंने AbbreviatedDayNames और AbbreviatedMonthNames के सरणी मुद्रित की हैं और वे प्रत्येक कंप्यूटर में अलग हैं।

क्या मैं कुछ गलत कर रहा हूं या यह अपेक्षित व्यवहार है? विंडोज/उपयोगकर्ता संस्कृति से इसे पूरी तरह से स्वतंत्र बनाने के लिए मैं कैसे कर सकता हूं?

उत्तर

1

ए आप एमएसडीएन से this link में देख सकते हैं, संस्कृति जानकारी कुछ विंडोज संस्करणों पर अलग हो सकती है।

याद रखें कि संस्कृति के नाम और पहचानकर्ता संस्कृतियों के केवल एक उप-समूह का प्रतिनिधित्व करते हैं जो किसी विशेष कंप्यूटर पर पाया जा सकता है। विंडोज संस्करण या सर्विस पैक उपलब्ध संस्कृतियों को बदल सकते हैं। एप्लिकेशन CultureAndRegionInfoBuilder क्लास का उपयोग कर कस्टम संस्कृतियों को जोड़ते हैं। उपयोगकर्ता माइक्रोसॉफ्ट लोकेल बिल्डर टूल का उपयोग करके अपनी खुद की कस्टम संस्कृतियों को जोड़ते हैं। माइक्रोसॉफ्ट लोकेल बिल्डर को CultureAndRegionInfoBuilder क्लास का उपयोग करके प्रबंधित कोड में लिखा गया है।

आप कुछ प्रारूप स्थिर होना चाहते हैं, आप अपने खुद CultureInfo वस्तु का निर्माण कर सकते हैं और इसके बारे में व्यवहार कस्टमाइज़ your own Date Time format की स्थापना, एक उदाहरण के रूप