2010-08-17 11 views
9

में AM/PM वापस नहीं लौटा रहा है, मैंने एक समस्या में भाग लिया है जो मुझे पागल कर रहा है। अपने आवेदन (ASP.NET MVC2 /.NET4) में, मैं तो बस इस चल:.NET डेटटाइम ToShortTimeString()

DateTime.Now.ToShortTimeString() 

सभी उदाहरण मैंने देखा है का संकेत मिलता है मैं की तरह कुछ मिलना चाहिए: 12:32 PM, हालांकि मैं AM बिना 12:32 हो रही है/PM।

मैंने लिंककैड 4 लॉन्च किया यह देखने के लिए कि क्या मैं इसे दोहराना चाहता हूं। इसके बजाय, यह 12:32 PM सही ढंग से देता है।

क्या है?

+2

बस एक अनुमान है, लेकिन क्या यह स्थानीयकरण मुद्दा हो सकता है? क्या आपकी प्रक्रिया एक तटस्थ संस्कृति में नहीं चल रही है? – kbrimington

उत्तर

10

तुम भी विशिष्ट संस्कृति भ्रम से बचने के लिए एक custom format कोशिश कर सकते हैं:

DateTime.Now.ToString("hh:mm tt") 
1

हाँ, यह अपने लोकेल पर निर्भर करता है। आपके आवेदन में System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortTimePattern का मूल्य क्या है?

MSDN Link

4

KBrimington सही होने के लिए लग रहा है देखें:

स्ट्रिंग ToShortTimeString विधि द्वारा वापस संस्कृति के प्रति संवेदनशील है। यह वर्तमान संस्कृति की डेटटाइमफॉर्मैटइन्फो ऑब्जेक्ट द्वारा परिभाषित पैटर्न को दर्शाता है। उदाहरण के लिए, एन-यूएस संस्कृति के लिए, मानक शॉर्ट टाइम पैटर्न "एच: एमएम टीटी" है; डी-डी संस्कृति के लिए, यह "एचएच: मिमी" है; जे-जेपी संस्कृति के लिए, यह "एच: मिमी" है। किसी विशेष कंप्यूटर पर विशिष्ट प्रारूप स्ट्रिंग को भी अनुकूलित किया जा सकता है ताकि यह मानक शॉर्ट टाइम प्रारूप स्ट्रिंग से अलग हो।

MSDN

1

से आप धागा की संस्कृति की जानकारी निर्धारित कर सकते हैं और इस तो विधि ToShortTimeString() द्वारा उपयोग किया जाएगा। लेकिन समझें कि इससे उस थ्रेड में चल रहे सभी कोड प्रभावित होंगे।

System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us"); 
2

आप अपने पूरे धागा/आवेदन के लिए संस्कृति के साथ गड़बड़ करने के लिए नहीं करना चाहते हैं, इस प्रयास करें:

CultureInfo ci = new CultureInfo("en-US"); 
string formatedDate = DateTime.Now.ToString("t", ci); 

आप दिनांक समय स्वरूप तार here की सूची पा सकते हैं।

1

फ़ंक्शन उपयोगकर्ता डिफ़ॉल्ट पैटर्न का उपयोग करता है। उन्हें नियंत्रण कक्ष में बदला जा सकता है। 'क्षेत्र और भाषा' सेटिंग्स में पहला टैब देखें। शॉर्ट टाइम पैटर्न को ऐसे पैटर्न में बदलें जो 'एच: एमएम टीटी' जैसा है और आप कर चुके हैं।

0

इसे संस्कृतिइंफो की भी आवश्यकता हो सकती है। इन्विरिएंट कल्चर उदा।

संबंधित मुद्दे