2012-02-02 12 views
50
Calendar cal; 
String sql = "INSERT INTO ttable (dt) values (?);" 
//dt is a dateTime field in ttable 

PreparedStatement stmt = connection.prepareStatement(sql); 

stmt = setDate(1,cal); //not working 

stmt.execute(); 
stmt.close(); 

मैं तालिका में सम्मिलित करने के लिए कैल को दिनांक प्रकार में परिवर्तित करना चाहता हूं।कैलेंडर में java.sql.Date में कैलेंडर कैसे परिवर्तित करें?

+0

शायद आप 'java.sql.Date' और नहीं' java.util.Date' चाहते थे? – ArtB

उत्तर

108

getTime विधि है (अनिश्चित है कि इसे GetDate क्यों नहीं कहा जाता है)।

संपादित करें: बस एहसास हुआ कि आपको java.sql.Date की आवश्यकता है। cal.getTimeInMillis() का उपयोग करने वाले उत्तरों में से एक वह है जो आपको चाहिए।

26

क्या आपने cal.getTime() को आजमाया था? यह तारीख का प्रतिनिधित्व हो जाता है।

आप जावाडोक को भी देखना चाहते हैं।

+0

हां, लेकिन मुझे (दिनांक) के साथ कास्ट करने की आवश्यकता है। – Alex

+0

ऐसा इसलिए है क्योंकि आपको java.sql.Date की आवश्यकता है (जैसे जेम्स जिथिन ने कहा) और कैलेंडर.getTime() आपको java.util.Date प्रदान करता है। –

24

उपयोग stmt.setDate(1, new java.sql.Date(cal.getTimeInMillis()))

9

परिवर्तित स्थापित करने की तारीख और समय एक छोटे से मुश्किल है, आसान है।

Calendar cal = Calendar.getInstance(); 
cal.set(Calendar.YEAR, 2000); 
cal.set(Calendar.MONTH, 0); 
cal.set(Calendar.DAY_OF_MONTH, 1); 
cal.set(Calendar.HOUR_OF_DAY, 1); 
cal.set(Calendar.MINUTE, 1); 
cal.set(Calendar.SECOND, 0); 
cal.set(Calendar.MILLISECOND, 0); 
stmt.setDate(1, new java.sql.Date(cal.getTimeInMillis())); 
1

मैं इस कोड काम करता पाया:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");  
Calendar calendar = new GregorianCalendar(2013,0,31); 
System.out.println(sdf.format(calendar.getTime())); 

आप इस ट्यूटोरियल में आराम पा सकते हैं:
http://www.mkyong.com/java/java-date-and-calendar-examples/

6

यहाँ में Calendar मूल्यों कन्वर्ट करने के लिए एक आसान तरीका है यहाँ एक उदाहरण है Date उदाहरण।

Calendar C = new GregorianCalendar(1993,9,21); 

Date DD = C.getTime(); 

System.out.println(DD); 
+0

प्रश्न विशेष रूप से java.sql.Date के बारे में पूछा गया। इस तरह के कई उत्तर हैं, सभी java.util.Date मानते हैं। बेशक, कुछ लोग यह कहेंगे कि एक ही बात बेवकूफ विचार थी। – Charles

1

stmt.setDate(1, new java.sql.Date(cal.getTime().getTime()));

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