Java में current date को string में कैसे कन्वर्ट करें?


जवाबों:


216
String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());

टाइमस्ट्रीमिंग के लिए इस के संयोजन और नीचे दिए गए उत्तर का उपयोग किया। C:
php_coder_3809625

@ इयान पर्टन क्या UTC tz में स्ट्रिंग डेट है ..?
कानागावेलु सुगुमार

FYI करें, ये परेशान करने वाली कक्षाएं अब विरासत हैं, java.time कक्षाओं द्वारा इसका समर्थन किया जाता है। ओरेकल ट्यूटोरियल देखें ।
बेसिल बॉर्क

62
// GET DATE & TIME IN ANY FORMAT
import java.util.Calendar;
import java.text.SimpleDateFormat;
public static final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";

public static String now() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
return sdf.format(cal.getTime());
}

यहां से ले गए


तिथि के बजाय कैलेंडर का उपयोग करने के लिए सर्वश्रेष्ठ प्रतिक्रिया।
रैंडम

5
मैं उलझन में हूं। ब्रह्माण्ड Calendarकिसकी तुलना में अधिक वांछनीय है Date?
jasonmp85

1
FYI करें, ये परेशान करने वाली कक्षाएं अब विरासत हैं, java.time कक्षाओं द्वारा इसका समर्थन किया जाता है। ओरेकल ट्यूटोरियल देखें ।
तुलसी बॉर्क

27
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();

58
अच्छी तरह से overachieving के लिए खेद है।
jasonmp85

2
उस विधि द्वारा उपयोग किया जाने वाला प्रारूप भयानक है। इसके अलावा, आपके KVM के वर्तमान डिफ़ॉल्ट समय क्षेत्र को आसानी से लागू किया जाता है, इसलिए आपके परिणाम अलग-अलग होंगे। और ये परेशान करने वाली कक्षाएं अब विरासत हैं, java.time कक्षाओं द्वारा इसे दबा दिया गया है। ओरेकल ट्यूटोरियल देखें ।
बेसिल बॉर्क

19

एक DateFormatकार्यान्वयन का उपयोग करें ; उदा SimpleDateFormat

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());

FYI करें, ये परेशान करने वाली कक्षाएं अब विरासत हैं, java.time कक्षाओं द्वारा इसका समर्थन किया जाता है। ओरेकल ट्यूटोरियल देखें ।
बेसिल बॉर्क

14

tl; डॉ

LocalDate.now()
         .toString() 

2017/01/23

स्पष्ट रूप से वांछित / अपेक्षित समय क्षेत्र को निर्दिष्ट करने के लिए बेहतर है।

LocalDate.now( ZoneId.of( "America/Montreal" ) )
         .toString() 

java.time

जावा 8 और बाद में आधुनिक तरीका java.time ढांचे के साथ है।

समय क्षेत्र निर्दिष्ट करें, क्योंकि तिथि किसी भी समय दुनिया भर में भिन्न होती है।

ZoneId zoneId = ZoneId.of( "America/Montreal" ) ;  // Or ZoneOffset.UTC or ZoneId.systemDefault()
LocalDate today = LocalDate.now( zoneId ) ;
String output = today.toString() ;

2017/01/23

डिफ़ॉल्ट रूप से आपको मानक ISO 8601 प्रारूप में एक स्ट्रिंग मिलती है ।

अन्य प्रारूपों के लिए java.time.format.DateTimeFormatterवर्ग का उपयोग करें ।


जावा के बारे में

Java.time ढांचे जावा 8 और बाद में बनाया गया है। इन कक्षाओं परेशानी वर्ष प्रतिस्थापित विरासत जैसे तिथि-समय कक्षाएं java.util.Date, Calendar, और SimpleDateFormat

Joda समय परियोजना, अब में रखरखाव मोड , प्रवास करने की सलाह देता java.time कक्षाएं।

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

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

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

ThreeTen-अतिरिक्त परियोजना अतिरिक्त कक्षाओं के साथ java.time फैली हुई है। यह परियोजना java.time के लिए भविष्य के संभावित अतिरिक्त के लिए एक साबित जमीन है। आप यहाँ कुछ उपयोगी वर्गों जैसे मिल सकता है Interval, YearWeek, YearQuarter, और अधिक



1

YYYY-MM-dd के रूप में समय के लिए

String time = new DateTime( yourData ).toString("yyyy-MM-dd");

और लाइब्रेरी ऑफ़ डेटटाइम है:

आयात org.joda.time.ateTime;


और क्या पुस्तकालय DateTimeसे है? स्टैक ओवरफ्लो पर एक उत्तर में कुछ स्पष्टीकरण होना चाहिए क्योंकि यह साइट स्निपेट लाइब्रेरी से अधिक है।
तुलसी बोर्क

0

अधिकांश उत्तर मान्य थे। दिनांक हैंडलिंग के लिए नया जावा एपीआई संशोधन ने सुनिश्चित किया कि जावा तिथि से निपटने में कुछ पहले अस्पष्टता कम हो गई है।

आपको समान कॉल के लिए एक पदावनत संदेश मिलेगा।

new Date() // deprecated

उपरोक्त कॉल में डेवलपर को यह मान लेना था कि एक नया दिनांक ऑब्जेक्ट वर्तमान टाइमस्टैम्प के साथ दिनांक ऑब्जेक्ट देगा। यह व्यवहार अन्य जावा एपीआई वर्गों के अनुरूप नहीं है।

ऐसा करने का नया तरीका कैलेंडर इंस्टेंस का उपयोग कर रहा है ।

new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()

यहां भी नामकरण सम्मेलन सही नहीं है लेकिन यह बहुत व्यवस्थित है। मेरे जैसे एक व्यक्ति के लिए जो कठिन समय का सामना करता है लेकिन चीजों को कभी नहीं भूल सकता है अगर यह तार्किक लगता है / प्रकट होता है, तो यह एक अच्छा तरीका है।

यह वास्तविक जीवन का अधिक पर्याय है

  1. हमें एक कैलेंडर ऑब्जेक्ट मिलता है और हम उसमें समय की तलाश करते हैं। (आप सोच रहे होंगे कि किसी भी शरीर को कैलेंडर से समय नहीं मिलता है, इसीलिए मैंने कहा कि यह बिल्कुल सही नहीं है। लेकिन यह एक अलग तरह की ऊंचाई है)
  2. फिर हम एक साधारण पाठ प्रारूप में तारीख चाहते हैं, इसलिए हम एक SimpleDateFormat उपयोगिता वर्ग का उपयोग करते हैं जो हमें चरण 1 से दिनांक को प्रारूपित करने में मदद करता है। मैंने प्रारूप में पैरामीटर के रूप में yyyy, MM, dd का उपयोग किया है। समर्थित दिनांक स्वरूप पैरामीटर

ऐसा करने का एक और तरीका है, जोडा टाइम एपीआई का उपयोग करना

new DateTime().toString("yyyy-MM-dd")

या बहुत स्पष्ट है

new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")

दोनों एक ही परिणाम लौटाएंगे।


FYI करें, जैसे परेशानी पुराने तिथि-समय कक्षाएं java.util.Date, java.util.Calendarऔर java.text.SimpleTextFormatअब कर रहे हैं विरासत , द्वारा का स्थान ले लिया java.time कक्षाएं। इसके अलावा, जोडा-टाइम परियोजना अब रखरखाव मोड में है , जिसमें टीम java.time को प्रवास की सलाह दे रही है।
तुलसी बॉर्क

1
@ बासिलबूर्क जो मेरे उत्तर में था, वह यह है कि शीर्ष मतदान का उत्तर सही है, लेकिन वर्तमान दिन डेवलपर के लिए प्रासंगिक नहीं है। अंत में जावा में क्लॉक क्लास होगी और क्लॉक.गेटटाइम () डेट या डेटाइम या टाइम क्लासेज की तुलना में ज्यादा समझदार और वास्तविक जीवन होगा। जावा डेवलपर्स को यह जानने की जरूरत है कि OOPS ने कुछ ऐसा शुरू किया जो वास्तविक जीवन परिदृश्यों की नकल करता है।
स्वप्निल वरगाँवकर

FYI करें, Clockजावा 8 में कार्यान्वयन बिल्कुल विरासत वर्गों के समान है। केवल जावा 9 में एक नया कार्यान्वयन आता है, जो वर्तमान क्षण को एक संकल्प के साथ-साथ नैनोसेकंड के साथ कैप्चर करने में सक्षम है।
बेसिल बोर्क

हां यही कारण है कि मैंने "आखिरकार" लिखा, जावा में एक क्लॉक क्लास होगा जो वास्तविक जीवन परिदृश्य (ओओपीएस अवधारणा) की नकल करेगा और शो / कैप्चर करेगा (जिस तरह से आप इसे कहना पसंद करेंगे) वर्तमान क्षण।
स्वपनिल वरगाँवकर

-2
public static Date getDateByString(String dateTime) {
        if(dateTime==null || dateTime.isEmpty()) {
            return null;
        }
        else{
            String modified = dateTime + ".000+0000";
            DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
            Date dateObj = new Date();
            Date dateObj1 = new Date();
            try {
                if (dateTime != null) {
                    dateObj = formatter.parse(modified);
                }

            } catch (ParseException e) {
                e.printStackTrace();
            }

            return dateObj;
        }

    }

1
कोड के इस टुकड़े के बारे में कुछ स्पष्टीकरण शायद फायदेमंद होंगे।
पिव्स

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