2011-08-09 10 views
14

String.Format("/") क्यों बदलता है "-"?String.Format एक फॉरवर्ड स्लैश को एक ऋण चिह्न में क्यों परिवर्तित करता है?

+5

स्टैक ओवरफ़्लो समुदाय स्वतंत्र है और _encouraged_ उनके सर्वोत्तम योग्यता के लिए प्रश्नों को बेहतर बनाने के लिए है। यदि आप इससे असहज हैं, तो स्टैक ओवरफ़्लो शायद आपके लिए नहीं है। कृपया अपनी सबसे पुरानी सुविधा पर [एफएक्यू] (http://stackoverflow.com/faq) देखें। –

उत्तर

21

मुझे संदेह है कि आप {0} प्लेसहोल्डर के अंदर / प्रतीक का उपयोग कर रहे हैं। यह एक आरक्षित प्रतीक है जो दी गई संस्कृति में डेटाटाइम विभाजक के रूप में उपयोग किया जाता है। आप इसे से बच सकते हैं, इस तरह:

string date = string.Format("{0:dd\\/MM\\/yyyy}", DateTime.Now); 
1

ऐसा लगता है कि आपकी संस्कृति में आपकी तिथि सेपरेटर "/" की बजाय "-" है। msdn और देखते हैं कि यह article

संपादित करें:

आप अपने क्षेत्र और भाषा सेटिंग्स की जाँच की सुनिश्चित रूप से चयनित एक विकल्प का उपयोग करता है की जरूरत नहीं है बनाने के लिए है "-"।

enter image description here

+0

मेरा लघु दिनांक प्रारूप 'yyyy-MM-dd' है, लेकिन 'स्ट्रिंग। फ़ार्मेट ("/")' अभी भी' "/" ''लौटाता है। – Guffa

+0

@ गुफा - दिलचस्प ... ऐसा लगता है कि मैं गलत पेड़ को भड़क रहा था –

6

मैंने कोशिश की है कि सभी संभव संस्कृतियों के साथ:

foreach (CultureInfo info in CultureInfo.GetCultures(CultureTypes.AllCultures)) { 
    Console.Write(String.Format(info, "/")); 
} 

आउटपुट:

//////////////////////////////////////////////////////////////////////////////// 
//////////////////////////////////////////////////////////////////////////////// 
//////////////////////////////////////////////////////////////////////////////// 
//////////////////////////////////////////////////////////////////////////////// 
////////////////////////////////// 

तो, कि कहीं भी नहीं होता है।

+0

हाहा, आउटपुट से प्यार – SwDevMan81

13

Custom Date and Time Format Strings के अनुसार, / संस्कृति की तिथि विभाजक को संदर्भित करता है। तो आपको इसे बचाना होगा। आप या तो डारिन के उत्तर के अनुसार बैकस्लैश का उपयोग कर सकते हैं, या आप इसे सिंगल कोट्स में उद्धृत कर सकते हैं। उदाहरण के लिए:

using System; 
using System.Globalization; 

class Test 
{ 
    static void Main() 
    { 
     DateTime date = DateTime.Now; 

     CultureInfo da = new CultureInfo("da"); 
     // Prints 09-08-2011 
     Console.WriteLine(string.Format(da, "{0:dd/MM/yyyy}", date)); 
     // Prints 09/08/2011 
     Console.WriteLine(string.Format(da, "{0:dd'/'MM'/'yyyy}", date)); 
     // Prints 09/08/2011 
     Console.WriteLine(string.Format(da, "{0:dd\\/MM\\/yyyy}", date)); 
    } 
} 
संबंधित मुद्दे