दिनांक समयरेखा को / से विशिष्ट स्ट्रिंग प्रारूप में कैसे परिवर्तित किया जाए (दोनों तरीके, जैसे दिए गए प्रारूप "yyyMMdd" है)?


132

मुझे डेटाइम को परिवर्तित करने में समस्या हो रही है जो स्ट्रिंग प्रारूप में है, लेकिन मैं "yyyyMMdd"प्रारूप का उपयोग करके इसे परिवर्तित करने में सक्षम नहीं हूं ।

मेरा कोड है:

string tpoc = refSubClaim.BenefitsFolder.BenefitFolderIdNumber.ToString();
string[] tpocinfo = Regex.Split(tpoc,";");

for (int i = 0; i < tpocinfo.Length; i++)
{
    switch (i)
    {
        case 0:
        {
            string[] tpoc2 = Regex.Split(tpocinfo[0], ",");
            claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
            claimantAuxillaryRecord.TPOCAmount2 = Convert.ToDecimal(tpoc2[1]);
            claimantAuxillaryRecord.FundingDelayedBeyondTPOCStartDate2 = tpoc2[2].ToString();
        }
        break;

अभी किस प्रारूप में डेटाइम स्ट्रिंग है?
Falle1234

11
और प्रश्न के लिए आपके कोड स्निपेट की प्रासंगिकता क्या है?
डारिन दिमित्रोव

2
मैं थोड़ा अस्पष्ट हूँ; क्या आप किसी दिनांक, या किसी दिनांक समय ऑब्जेक्ट के स्ट्रिंग प्रतिनिधित्व के साथ काम कर रहे हैं? यह मानते हुए कि आप अभी कॉल कर सकते हैं एक DateTime ऑब्जेक्ट है obj.ToString("yyyyMMdd");
नाथन टेलर

वास्तव में TPOCDate2 पहले से ही एक चर है और मैं सिर्फ tpoc2 में हाथी को परिवर्तित करना चाहता हूं [0] को yyyMMdd प्रारूप में होना चाहिए। आशा है कि यह आपके प्रश्न का उत्तर देगा
आशुतोष

क्या आप कहीं फंस गए हैं?
डेरियस वोज्नियाक

जवाबों:


224

यदि आपके पास "ddMMyyyy" प्रारूप के साथ एक स्ट्रिंग में एक तिथि है और इसे "yyyyMMdd" में बदलना चाहते हैं, तो आप इस तरह कर सकते हैं:

DateTime dt = DateTime.ParseExact(dateString, "ddMMyyyy", 
                                  CultureInfo.InvariantCulture);
dt.ToString("yyyyMMdd");

4
अपने कोड के साथ अटक गया, यह एक अच्छी तरह से काम किया DateTime.TryParse (stringValue, out outputInDateTime);
डीजे '

64

पार्सिंग डेटटाइम:

दिनांक समयरेखा को पार्स करने के लिए, निम्न विधियों में से एक का उपयोग करें:

वैकल्पिक रूप से, आप try-parse पैटर्न का उपयोग कर सकते हैं :

कस्टम दिनांक और समय प्रारूप स्ट्रिंग्स के बारे में और पढ़ें ।

दिनांक समय को स्ट्रिंग में परिवर्तित करना:

"YyyyMMdd" प्रारूप में स्ट्रिंग के रूप में एक डेटटाइम वापस करने के लिए, आप ToStringविधि का उपयोग कर सकते हैं ।

  • कोड स्निपेट उदाहरण: string date = DateTime.ToString("yyyyMMdd");
  • नोट ऊपरी मामलों एम के महीनों को देखें और कम मामलों मीटर 'मिनट के लिए है।

आपका मुकदमा:

आपके मामले में, यह मानते हुए कि जब आप अलग-अलग प्रारूप या मिसिंग है, तो परिदृश्य को संभालना नहीं चाहते हैं, यह उपयोग करने के लिए सबसे सुविधाजनक होगा ParseExact:

string dateToParse = "20170506";
DateTime parsedDate = DateTime.ParseExact(dateToParse, 
                                          "yyyyMMdd",
                                          CultureInfo.InvariantCulture);

7
यह एक पुराना विषय है, लेकिन खोज करने वालों के लिए, उपरोक्त लिंक, "संस्कृति-विशिष्ट प्रारूप" अब एक मृत लिंक है। यहाँ एक है जो वर्तमान और सूचनात्मक कस्टम दिनांक और समय प्रारूप स्ट्रिंग्स है

40

आप अपने स्ट्रिंग को DateTimeइस तरह से मान में बदल सकते हैं :

DateTime date = DateTime.Parse(something);

आप DateTimeइस तरह एक स्वरूपित स्ट्रिंग के लिए एक मूल्य में परिवर्तित कर सकते हैं :

date.ToString("yyyyMMdd");

11

स्ट्रिंग को yyyy-MM-dd तिथि प्रारूप: उदाहरण:

TxtCalStDate.Text = Convert.ToDateTime(objItem["StartDate"]).ToString("yyyy/MM/dd");   

10

अगर आप DATE को TIME के साथ भी स्ट्रिंग करना चाहते हैं । हम इस तरह कर सकते हैं:

    //Date and Time is taking as current system Date-Time    
    DateTime.Now.ToString("yyyyMMdd-HHmmss");

7
मिनट छोटा होना चाहिए "मी"!? "yyyyMMdd-HHmmss"
CeOnSql

6

DateTime.TryParseExact()यदि आप किसी विशिष्ट दिनांक प्रारूप के विरुद्ध मिलान करना चाहते हैं तो इसका उपयोग करें

   string format = "yyyyMMdd"; 
    DateTime dateTime;
    DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
                                             DateTimeStyles.None, out dateTime);

5

आप DateTime.TryParse()इसके बजाय उपयोग कर सकते हैं DateTime.Parse()
यदि TryParse()आपके पास सफल होने के साथ रिटर्न वैल्यू है और Parse()आपको अपवाद को संभालना है



3

yyyyMMdd प्रारूप में yyyy / mm / dd के साथ कोई स्ट्रिंग नहीं है और मुझे इसकी आवश्यकता है

यदि आपको केवल एक स्ट्रिंग से स्लैश निकालने की आवश्यकता है तो क्या आप उन्हें प्रतिस्थापित नहीं करते हैं?

उदाहरण:

myDateString = "2013/03/28";
myDateString = myDateString.Replace("/", "");

myDateString अब "20130328" होना चाहिए।

एक ओवरकिल की कम :)



2

संपत्ति के नामों के आधार पर ऐसा लगता है कि आप असाइनमेंट द्वारा स्ट्रिंग को डेट में बदलने की कोशिश कर रहे हैं:

claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();

यह संभवतः वर्तमान UI संस्कृति के कारण है और इसलिए इसे असाइन किए जाने पर दिनांक स्ट्रिंग की सही व्याख्या नहीं कर सकता है।


yyyy / mm / dd के साथ कोई स्ट्रिंग नहीं है और मुझे इसकी आवश्यकता yyyyMMdd प्रारूप में है
Ashutosh

और दावा करते समय AuxillaryRecord.TPOCDate2 = tpoc2 [0] .ToString ("yyyyMMdd"); यह कुछ बिल्ड एरर देता है। 'String.ToString (System.IFormatProvider)' के लिए सबसे अच्छा अतिभारित विधि मिलान में कुछ अमान्य तर्क हैं
Ashutosh

@ मत्त - सच में? आपने 4+ वर्ष की प्रतिक्रिया संपादित की जो टैब जोड़ने के उत्तर के रूप में भी चिह्नित नहीं की गई थी? यह ओसीडी का एक गंभीर बुरा मामला है जो आपको वहां मिला है।
पीटर


0

इस उत्तर को खोजने के साथ-साथ एक और सरल तरीका मुझे पता चला;

string date = DateTime.Now.ToString("yyyyMMdd", System.Globalization.CultureInfo.GetCultureInfo("en-US"));

कैसे के बारे में मैं एक मूल्य है DateTime? पसंद है DateTime newDate = DateTime.Parse(Session["date"].ToString());?
डब्ल्यूटीएफज़ेन

0

आप इन कोड को आज़मा सकते हैं

claimantAuxillaryRecord.TPOCDate2  = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd"); 

या

claimantAuxillaryRecord.TPOCDate2 = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd hh:mm:ss"); 

1
भगवान के प्रेम के लिए (हमारे स्वामी रक्षक हरम्बे), कभी Convert.ToDateTime का उपयोग करें ... यह बात इतनी धीमी है (~ 100ms)! बस ParseExact या TryParse का उपयोग करें - waaaaay तेजी से !!!
कोशेरा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.