मैं एक SQLite DB जो प्रारूप में बाहर आता है से एक datetime को पुन: प्राप्त कर रहा हूँ करने के लिए एक datetime स्ट्रिंग ...स्वरूप समय केवल
2011-01-24 02:45:00
सी # में मैं बस DateTime.Parse("2011-01-24 02:45:00").ToString("HH:mm")
क्रम में उपयोग कर सकते हैं स्ट्रिंग पाने के लिए 02:45
क्या उनका एक तरीका है मैं इसे एंड्रॉइड/जावा में कर सकता हूं? अपने Android एप्लिकेशन में मेरे कोड इस तरह दिखता है ...
// dateStr below is logging as correctly being yyyy-MM-dd HH:mm:ss format
String dateStr = cursor.getString(cursor.getColumnIndex("start_time"));
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
String shortTimeStr = sdf.format(dateStr); // <-- throws IllegalArgumentException
संपादित करें: दोनों doc_180 और Konstantin Burov के लिए धन्यवाद - उदाहरण मुझे समस्या को हल मदद की है को देखते हुए। इस मुद्दे का एक हिस्सा यह था कि मैं java.sutil.Date के बजाय java.sql.Date आयात कर रहा था। मैंने चीजों को चारों ओर बदल दिया है और यह अब मेरे लिए पूरी तरह से काम कर रहा है।
SimpleDateFormat को एक तिथि बहस की आवश्यकता होती है, स्ट्रिंग नहीं। आपको अपनी तिथि को मिलीसेकंड के रूप में स्टोर करना चाहिए और उस से डेट ऑब्जेक्ट बनाना चाहिए। दिनांक डी = नई तिथि (dateAsMillisec) और फिर इसे सरल से स्वरूपित करने के लिए पास करें। –
@ doc_180: ठीक है क्षमा करें, आप काफी सही हैं - शायद मेरे प्रश्न पर पुनर्विचार करने की आवश्यकता है। मेरी समस्या यह है कि एंड्रॉइड साइड पर मेरा डीबी एक पीसी-आधारित ऐप के SQLite डीबी का 'दर्पण' है जो उस लंबे/रिवर्स डेटाटाइम प्रारूप का उपयोग करता है और मैं प्रारूपों को समान रखना चाहता हूं। मैंने date.parse (स्ट्रिंग) का उपयोग करने की कोशिश की तो sdf.format (...) लेकिन यह भी एक अपवाद फेंक दिया। – Squonk
क्या आपने मेरा कोड आजमाया था। यह काम करता है और मैंने जांच की है। –