कैसे प्रदर्शित करने के लिए एक java.sql टाइमस्टैम्प प्रारूपित करें?


103

मैं अपनी पसंद के हिसाब से java.sql टाइमस्टैम्प कैसे बना सकता हूं? (प्रदर्शन उद्देश्यों के लिए एक स्ट्रिंग के लिए)

जवाबों:


160

java.sql.Timestampफैली हुई है java.util.Date। तुम कर सकते हो:

String s = new SimpleDateFormat("MM/dd/yyyy").format(myTimestamp);

या समय भी शामिल करने के लिए:

String s = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(myTimestamp);

3
यह काम करेगा, लेकिन चूंकि SimpleDateFormat थ्रेड-सुरक्षित नहीं है।
ब्रायन एग्न्यू

17
बस एक छोटा सा अनुस्मारक है कि अगर SimpleDateFormat ऑब्जेक्ट एक स्थानीय-स्कोप्ड ऑब्जेक्ट है (यह केवल एक विधि के अंदर बनाया और उपयोग किया जाता है), तो यह थ्रेड-सुरक्षित है, क्योंकि जिस पर यह निवास करेगा, वह स्वाभाविक रूप से "थ्रेड-सुरक्षित" है (जैसा कि यह है) एक ही धागे का है)।
क्वांटम

5
या कुछ इसी तरह: समय शामिल करने के लिए आप SimpleDateFormat ( "MM / DD / YYYY HH") का उपयोग करने की आवश्यकता होगी
AverageMarcus

1
इसे उन लोगों के लिए पूरा करने के लिए जिन्हें इसकी आवश्यकता है, स्ट्रिंग S = new SimpleDateFormat ("MM / dd / yyyy HH: mm: ss")। format (myTimestamp);
इशान लियायनज

27

String.format (या java.util.Formatter ) का उपयोग करें :

Timestamp timestamp = ...
String.format("%1$TD %1$TT", timestamp)

संपादित करें:
टीडी और टीटी का अर्थ क्या है: यह जानने के लिए कृपया फ़ॉर्मेटर का प्रलेखन देखें: java.util.Formatter पर क्लिक करें

पहले 'T' के लिए खड़ा है:

't', 'T'    date/time   Prefix for date and time conversion characters.

और चरित्र है कि 'टी' के बाद:

'T'     Time formatted for the 24-hour clock as "%tH:%tM:%tS".
'D'     Date formatted as "%tm/%td/%ty". 

1
मेरे हिसाब से यह सबसे अच्छा जवाब है। टाइमस्टैम्प को एक स्ट्रिंग में परिवर्तित करने के लिए कोई भी शानदार वस्तु नहीं बनाई गई है।
सलिल

1
अब यह स्पष्ट होना चाहिए कि प्रलेखन कहां पाया जाए और इसका क्या अर्थ है
user85421

बहुत खूबसूरत। बस स्पष्ट होने के लिए, यहाँ उदाहरण द्वारा निर्मित स्वरूपण जैसा दिखता है 05/30/17 00:39:18
नौमेनन

@ नोमैनन धन्यवाद, यह प्रारूप "मेरी पसंद के अनुसार" था जैसा कि प्रश्न की मांग थी [:-)
user85421

10

इस विशेष प्रश्न के लिए, मानक सुझाव java.text.SimpleDateFormatकाम करता है, लेकिन दुर्भाग्यपूर्ण साइड इफेक्ट है जो SimpleDateFormat थ्रेड-सुरक्षित नहीं है और विशेष रूप से बुरा समस्याओं का स्रोत हो सकता है क्योंकि यह बहु-थ्रेडेड परिदृश्यों में आपके आउटपुट को दूषित करेगा, और आप नहीं करेंगे कोई अपवाद नहीं मिलता है!

मैं दृढ़ता से अनुशंसा करूंगा कि इस तरह की किसी भी चीज़ के लिए जोडा को देखा जाए। क्यों ? यह वर्तमान पुस्तकालय की तुलना में जावा के लिए अधिक समृद्ध और अधिक सहज ज्ञान युक्त समय / दिनांक पुस्तकालय है (और नए मानक जावा तिथि / समय पुस्तकालय का आधार है, इसलिए आप जल्द ही एक मानक के रूप में सीखेंगे एपीआई)।


8
अच्छी चेतावनी। लेकिन पता करने के लिए बहुत आसान है - SimpleDateFormat उदाहरण सत्र गुंजाइश / उदाहरण चर / स्थिर संदर्भ में उन्हें संग्रहीत करके और फिर उन्हें कई थ्रेड से एक्सेस करके साझा न करें। बस अपने तरीके के भीतर एक नया SimpleDateFormat () बनाएं और उपयोग के बाद इसे छोड़ दें। वह सूत्र है।
ग्लेन बेस्ट

बेशक, यदि आप वास्तव में SimpleDateFormat को संग्रहीत / साझा करना चाहते हैं, तो पहुंच को सिंक्रनाइज़ करें: सिंक्रोनाइज़ (simpleDateFormatInstance) {s = simpleDateFormatInstance.format (myTimeStamp) या SDF वर्ग का एक कस्टम एक्सटेंशन बनाएं, और इसे स्वचालित रूप से प्रारूप विधि के भीतर करें।
ग्लेन बेस्ट

9

यदि आप MySQL का उपयोग कर रहे हैं और चाहते हैं कि डेटाबेस स्वयं रूपांतरण करे, तो इसका उपयोग करें:

DATE_FORMAT (तिथि, स्वरूप)

यदि आप जावा का उपयोग करके प्रारूपित करना पसंद करते हैं, तो इसका उपयोग करें:

java.text.SimpleDateFormat

SimpleDateFormat dateFormat = new SimpleDateFormat("M/dd/yyyy");
dateFormat.format( new Date() );

2

का प्रयोग करें DateFormat। एक अंतर्राष्ट्रीय अनुप्रयोग में, द्वारा प्रदान प्रारूप का उपयोग करें getInstance। यदि आप प्रारूप को स्पष्ट रूप से नियंत्रित करना चाहते हैं, तो एक नया बनाएँ SimpleDateFormat


-9

स्ट्रिंग का समय FFSSHStr = timeFrSSH.toString ();

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.