tl पर नज़र डालें, डॉ
myPreparedStatetment.setObject(
… ,
LocalDateTime.parse(
"2012-04-13 04:08:42.794".replace(" " , "T")
)
)
विवरण
Answer by SJuan76 सही है: आप की खराब से डिजाइन उत्पादन द्वारा मूर्ख किया जा रहा है Date::toString
विधि। इसके बजाय, java.time कक्षाओं का उपयोग करें।
java.time
आधुनिक दृष्टिकोण java.time वर्गों है कि इस तरह Date
/Calendar
के रूप में परेशानी पुराने तिथि-समय वर्गों का स्थान ले लिया उपयोग करता है।
पहले आईएसओ 8601 मानक का पूर्ण अनुपालन करने के लिए अपनी इनपुट स्ट्रिंग को कन्वर्ट करें। स्पेस को बीच में T
के साथ बदलें।
String input = "2012-04-13 04:08:42.794".replace(" " , "T") ;
पार्स एक LocalDateTime
के रूप में के बाद से अपने इनपुट का एक संकेतक का अभाव ऑफसेट-से-यूटीसी या समय क्षेत्र।
LocalDateTime ldt = LocalDateTime.parse(input) ;
ldt.toString(): 2012-04-13T04: 08: 42।794
एसक्यूएल
तिथि-समय java.sql
कक्षाओं से संबंधित से बचें। वे भी java.time कक्षाओं द्वारा आपूर्ति की जाती हैं। जेडीबीसी 4.2 के अनुसार, आप सीधे अपने डेटाबेस के साथ java.time ऑब्जेक्ट्स का आदान-प्रदान कर सकते हैं। तो आप java.sql.Date
कक्षा और इसके भयानक हैक किए गए डिज़ाइन के बारे में सभी को भूल सकते हैं।
myPreparedStatement.setObject(… , ldt) ;
और ...
LocalDateTime ldt = myResultSet.getObject(… , LocalDateTime.class) ;
नैतिकता
# 1 कहानी का नैतिक: स्मार्ट वस्तुओं का प्रयोग करें, बेवकूफ नहीं तार।
# 2 कहानी का नैतिक: उपयोग केवल java.time वस्तुओं। विरासत दिनांक-समय कक्षाओं से बचें।
बारे java.time
java.time ढांचे जावा 8 और बाद में बनाया गया है। ये कक्षाएं परेशान पुराने legacy दिनांक-समय कक्षाएं जैसे java.util.Date
, Calendar
, & SimpleDateFormat
प्रदान करती हैं।
Joda-Time प्रोजेक्ट, अब maintenance mode में, java.time कक्षाओं में माइग्रेशन की सलाह देता है।
और जानने के लिए, Oracle Tutorial देखें। और कई उदाहरणों और स्पष्टीकरणों के लिए स्टैक ओवरफ़्लो खोजें। विशिष्टता JSR 310 है।
एक JDBC driver अनुरूप JDBC 4.2 साथ या बाद में उपयोग करके आप अपने डाटाबेस के साथ java.time वस्तुओं सीधे का आदान-प्रदान कर सकते हैं। तारों की कोई ज़रूरत नहीं है और न ही java.sql। * कक्षाएं।
जावा.टाइम कक्षाएं कहां प्राप्त करें?
ThreeTen-Extra परियोजना अतिरिक्त कक्षाओं के साथ java.time फैली हुई है। यह परियोजना java.time के संभावित भविष्य के जोड़ों के लिए एक सिद्ध भूमि है। आपको यहां कुछ उपयोगी कक्षाएं मिल सकती हैं जैसे Interval
, YearWeek
, YearQuarter
, और more।
एफवाईआई, परेशानी पुरानी डेट-टाइम कक्षाएं जैसे कि ''java.util.Date'] (https://docs.oracle.com/javase/9/docs/api/java/util/Date.html) , ['java.util.Calendar'] (https://docs.oracle.com/javase/9/docs/api/java/util/Calendar.html), और 'java.text.SimpleDateFormat' अब [विरासत ] (https://en.wikipedia.org/wiki/Legacy_system), [* java.time *] द्वारा प्रदान की गई (https://docs.oracle.com/javase/9/docs/api/java/time/ पैकेज-सारांश.html) जावा 8 और जावा 9 में निर्मित कक्षाएं। [* ट्रायलर * ओरेकल द्वारा देखें] (https://docs.oracle.com/javase/tutorial/datetime/TOC.html)। –