2011-09-20 12 views
16

मैं ResultSet.getTimestamp() का उपयोग कर डेटाबेस से टाइमस्टैम्प ऑब्जेक्ट पुनर्प्राप्त कर रहा हूं, लेकिन मुझे MM/DD/YYYY के प्रारूप में दिनांक और HH:MM xx के प्रारूप में दिनांक प्राप्त करने का एक आसान तरीका चाहिए। मैं चारों ओर झुका रहा था, ऐसा लगता है कि मैं जावा के भीतर दिनांक और/या डेटटाइम ऑब्जेक्ट्स का उपयोग करके ऐसा कर सकता हूं। क्या यह जाने का सबसे अच्छा तरीका है, या मुझे इसे पूरा करने के लिए टाइमस्टैम्प को बदलने की भी आवश्यकता है? कोई सिफारिशें सहायक होंगी।मैं टाइमस्टैम्प को दिनांक या डेटटाइम ऑब्जेक्ट में कैसे परिवर्तित कर सकता हूं?

.... 
while(resultSet.next()) { 
    Timestamp dtStart = resultSet.getTimestamp("dtStart"); 
    Timestamp dtEnd = resultSet.getTimestamp("dtEnd"); 

    // I would like to then have the date and time 
    // converted into the formats mentioned... 
    .... 
} 
.... 
+0

कोई 'DateTime' वर्ग जावा 9. –

उत्तर

14

java.sql.Timestampjava.util.Date का एक उपवर्ग है। तो, बस इसे उखाड़ फेंक दो।

Date dtStart = resultSet.getTimestamp("dtStart"); 
Date dtEnd = resultSet.getTimestamp("dtEnd"); 

SimpleDateFormat का उपयोग करना और Joda DateTime बनाने पर इस बिंदु से सरल होना चाहिए।

+11

के माध्यम से जावा 1 के साथ आता है, तो jodatime होने जा रहा है इस्तेमाल किया गया 'डेटटाइम dtStartDT = नया दिनांक समय (परिणामसेट.getTimestamp ("dtStart"));' यह सब आवश्यक है। – fvu

20
import java.sql.Timestamp; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class DateTest { 

    public static void main(String[] args) { 
     Timestamp timestamp = new Timestamp(System.currentTimeMillis()); 
     Date date = new Date(timestamp.getTime()); 

     // S is the millisecond 
     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy' 'HH:mm:ss:S"); 

     System.out.println(simpleDateFormat.format(timestamp)); 
     System.out.println(simpleDateFormat.format(date)); 
    } 
} 
+0

शायद "एमएम/डीडी/yyyy" एचएच: मिमी: एसएस: एस "बेहतर है? – user1768976

+0

बेशक, मिनट "मिमी" हैं, मैंने कोड उदाहरण को सही किया है। – Christopher

0

तुम भी टाइमस्टैम्प से दिनांक समय वस्तु प्राप्त कर सकते हैं अपने वर्तमान डेलाइट बचत समय सहित:

public DateTime getDateTimeFromTimestamp(Long value) { 
    TimeZone timeZone = TimeZone.getDefault(); 
    long offset = timeZone.getOffset(value); 
    if (offset < 0) { 
     value -= offset; 
    } else { 
     value += offset; 
    } 
    return new DateTime(value); 
}  
+0

यह 'डेटटाइम' कक्षा क्या है? जावा के साथ बंडल की कोई ऐसी कक्षा नहीं है। क्या आपने अपनी परियोजना में जोडा-टाइम जोड़ा था? यदि ऐसा है, तो जोदा-टाइम के साथ 'कैलेंडर' जैसी परेशानी पुरानी विरासत डेट-टाइम कक्षाओं को मिश्रण करने की आवश्यकता नहीं है, बस जोडा-टाइम तक चिपके रहें। इसके अलावा, जोडा-टाइम प्रोजेक्ट अब रखरखाव मोड में है, और आधुनिक जावा.टाइम कक्षाओं में माइग्रेशन की सलाह देता है। जावा.टाइम कक्षाएं पुराने विरासत दिनांक-समय कक्षाओं ('दिनांक',' कैलेंडर', आदि) और जोडा-टाइम दोनों की आपूर्ति करती हैं। –

+0

क्योंकि ओपी ने पूछा कि टाइमस्टैम्प को 'asdas' में परिवर्तित करें – Vettel1993

+0

डेटटाइम जोडा-टाइम से कक्षा है। ओपी ने पूछा कि टाइमस्टैम्प को दिनांक या दिनांक समय में कैसे परिवर्तित करें। आप सही हैं, यहां कैलेंडर कक्षा की कोई आवश्यकता नहीं है। – Vettel1993

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

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