2015-12-20 6 views
6

मेरे पास मेरी जीयूआई में QDateEdit है जिसमें से मैं QDate को QString में परिवर्तित करता हूं और इसे अपने डेटाबेस में जोड़ता हूं। QString दिनांक इस प्रारूप में डेटाबेस में सहेजा गया है: 20/12/2015।विशिष्ट प्रारूप में QString से QDate को परिवर्तित करने के लिए कैसे?

यदि कोई उपयोगकर्ता दिनांक संपादित करना चाहता है, तो मुझे फिर से GUI पर QDateEdit फ़ील्ड पर दिनांक दिखाना होगा। इसलिए, मुझे डेटाबेस लाने की आवश्यकता है, तारीख को वापस लाएं (जो QString प्रारूप में है) और इसे GU12 पर QDateEdit फ़ील्ड पर रखने के लिए इसे फिर से QDate में परिवर्तित करें।

हालांकि, मैं का उपयोग कर QDate है कि QString प्रारूप (यानी .: 20/12/2015) कन्वर्ट करने के लिए निम्नलिखित का प्रबंधन नहीं कर सकते हैं:

QString date_string_on_db = "20/12/2015"; 
QDate Date; 
Date.fromString(date_string_on_db,"dd/MM/YYYY"); 

Date हमेशा invalid लौटा रहा है।

मुझे क्या करना चाहिए?

+4

स्वरूप स्ट्रिंग के लिए 'dd/MM/yyyy' का उपयोग करने का प्रयास करें। –

उत्तर

9

सबसे पहले, प्रारूप स्ट्रिंग dd/MM/yyyy होना चाहिए। Qt documentation for the QDate class कहता है कि yyyy को चार अंकों का वर्ष संख्या माना जाता है।

दूसरा, fromString एक static फ़ंक्शन है जो एक नया QDate देता है। वर्तमान में, उस फ़ंक्शन का वापसी मान त्याग दिया गया है: इसे Date चर में वापस लिखा नहीं गया है, जैसा कि आप सोच सकते हैं। इसलिए पूर्ण सही कोड इस तरह दिखना चाहिए:

QString date_string_on_db = "20/12/2015"; 
QDate Date = QDate::fromString(date_string_on_db,"dd/MM/yyyy"); 
+0

उत्तर के लिए धन्यवाद। मैं QDate की आपकी व्याख्या की बहुत सराहना करता हूं। –

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