Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle दिनांक प्रारूप को जावा में कैसे बदलें?

tl;डॉ

नहीं, आप नहीं करते हैं।

  • Oracle जैसे डेटाबेस अपने आंतरिक रूप से परिभाषित बाइनरी मानों के साथ दिनांक-समय मानों को संग्रहीत करते हैं, न कि सादे पाठ के रूप में।
  • ओरेकल DATE type दिन-प्रतिदिन के साथ-साथ एक तिथि भी रखता है।

DATE =तारीख + दिन का समय

DATE Oracle डेटाबेस में टाइप का नाम गलत है। यह एक तिथि (वर्ष, महीने और महीने के दिन) से अधिक रखता है।

यह प्रकार पूरे सेकंड के लिए दिन-प्रतिदिन हल करने वाली तारीख का प्रतिनिधित्व करता है। इस प्रकार में समय क्षेत्र या ऑफ़सेट-से-UTC के संदर्भ का अभाव है। तो इस प्रकार का उपयोग एक पल, समयरेखा पर एक विशिष्ट बिंदु का प्रतिनिधित्व करने के लिए नहीं किया जा सकता है। (एक पल को ट्रैक करने के लिए, Oracle प्रकार का उपयोग करें TIMESTAMP WITH TIME ZONE ।)

ध्यान दें कि यह Oracle नामकरण SQL मानक से भिन्न है। मानक में, एक DATE प्रकार केवल दिनांक-मान है, जिसमें कोई समय-समय नहीं है और कोई समय क्षेत्र या ऑफ़सेट नहीं है।

java.time.LocalDateTime

तो इस प्रकार का नक्शा LocalDateTime जावा में।

पुनर्प्राप्ति।

LocalDateTime ldt = myResultSet.getObject( … , LocalDateTime.class ) ;

भंडारण।

myPreparedStatement.setObject( … , ldt ) ;

पाठ

ध्यान दें कि ऊपर दिए गए कोड में हम डंब स्ट्रिंग्स के बजाय स्मार्ट ऑब्जेक्ट्स का उपयोग कर रहे हैं।

दिनांक-समय ऑब्जेक्ट जैसे LocalDateTime String नहीं हैं और पाठ न रखें। वे आंतरिक रूप से अपने तरीके से अपने मूल्य का प्रतिनिधित्व करते हैं। आप एक स्ट्रिंग को डेट-टाइम ऑब्जेक्ट के रूप में पार्स कर सकते हैं, और आप टेक्स्ट जेनरेट करने के लिए डेट-टाइम ऑब्जेक्ट से पूछ सकते हैं। लेकिन टेक्स्ट और डेट-टाइम ऑब्जेक्ट अलग और अलग हैं।

java.time कक्षाएं मानक का उपयोग करती हैं ISO 8601 स्ट्रिंग्स को पार्स/जनरेट करते समय प्रारूप।

String output = ldt.toString() ;

पार्सिंग।

आप अन्य स्वरूपों में पाठ उत्पन्न कर सकते हैं। आप DateTimeFormatter.ofPattern . पर कॉल करके अपना स्वयं का कस्टम प्रारूप निर्दिष्ट कर सकते हैं . आमतौर पर DateTimeFormatter.ofLocalized… . को कॉल करके स्वचालित रूप से प्रारूपित करना बेहतर होता है तरीके।

यह स्टैक ओवरफ्लो पर पहले से ही कई बार कवर किया गया है। तो और जानने के लिए खोजें।

LocalDateTime ldt = LocalDateTime.parse( "2020-01-23T01:23:45.123456789" ) ;

के बारे में java.time

java.time फ्रेमवर्क जावा 8 और बाद में बनाया गया है। ये कक्षाएं पुराने विरासत की जगह लेती हैं दिनांक-समय की कक्षाएं जैसे java.util.Date , Calendar , और SimpleDateFormat

अधिक जानने के लिए, Oracle Tutorial देखें . और कई उदाहरणों और स्पष्टीकरणों के लिए स्टैक ओवरफ़्लो खोजें। विशिष्टता है JSR 310

जोडा-टाइम प्रोजेक्ट, अब रखरखाव मोड में , java.time कक्षाएं।

आप java.time . का आदान-प्रदान कर सकते हैं अपने डेटाबेस के साथ सीधे वस्तुओं। JDBC ड्राइवर का उपयोग करें JDBC 4.2 के अनुरूप या बाद में। स्ट्रिंग्स की कोई आवश्यकता नहीं है, java.sql.* . की कोई आवश्यकता नहीं है कक्षाएं। हाइबरनेट 5 और जेपीए 2.2 समर्थन java.time .

java.time कक्षाएं कहाँ से प्राप्त करें?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL WHERE क्लॉज में (+) चिन्ह का क्या अर्थ है?

  2. ओरेकल के लिए टॉड में एक प्रक्रिया को निष्पादित करने का तरीका जानें

  3. बाहरी चयन को विफल करने के लिए बाध्य करें यदि आंतरिक चयन में एक अमान्य पहचानकर्ता है

  4. Oracle BLOB एक्सट्रैक्शन बहुत धीमा

  5. जेडीबीसी रेडीस्टेटमेंट में पसंद की क्वेरी का उपयोग नहीं कर सकते हैं?