मैं जावा में वर्तमान तिथि को स्ट्रिंग में कैसे बदलूं?
मैं जावा में वर्तमान तिथि को स्ट्रिंग में कैसे बदलूं?
जवाबों:
String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
// 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());
}
यहां से ले गए
Calendar
किसकी तुलना में अधिक वांछनीय है Date
?
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();
एक DateFormat
कार्यान्वयन का उपयोग करें ; उदा SimpleDateFormat
।
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());
LocalDate.now()
.toString()
2017/01/23
स्पष्ट रूप से वांछित / अपेक्षित समय क्षेत्र को निर्दिष्ट करने के लिए बेहतर है।
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.toString()
जावा 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
, और अधिक ।
और तेज :
String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));
YYYY-MM-dd के रूप में समय के लिए
String time = new DateTime( yourData ).toString("yyyy-MM-dd");
और लाइब्रेरी ऑफ़ डेटटाइम है:
आयात org.joda.time.ateTime;
DateTime
से है? स्टैक ओवरफ्लो पर एक उत्तर में कुछ स्पष्टीकरण होना चाहिए क्योंकि यह साइट स्निपेट लाइब्रेरी से अधिक है।
अधिकांश उत्तर मान्य थे। दिनांक हैंडलिंग के लिए नया जावा एपीआई संशोधन ने सुनिश्चित किया कि जावा तिथि से निपटने में कुछ पहले अस्पष्टता कम हो गई है।
आपको समान कॉल के लिए एक पदावनत संदेश मिलेगा।
new Date() // deprecated
उपरोक्त कॉल में डेवलपर को यह मान लेना था कि एक नया दिनांक ऑब्जेक्ट वर्तमान टाइमस्टैम्प के साथ दिनांक ऑब्जेक्ट देगा। यह व्यवहार अन्य जावा एपीआई वर्गों के अनुरूप नहीं है।
ऐसा करने का नया तरीका कैलेंडर इंस्टेंस का उपयोग कर रहा है ।
new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()
यहां भी नामकरण सम्मेलन सही नहीं है लेकिन यह बहुत व्यवस्थित है। मेरे जैसे एक व्यक्ति के लिए जो कठिन समय का सामना करता है लेकिन चीजों को कभी नहीं भूल सकता है अगर यह तार्किक लगता है / प्रकट होता है, तो यह एक अच्छा तरीका है।
यह वास्तविक जीवन का अधिक पर्याय है
ऐसा करने का एक और तरीका है, जोडा टाइम एपीआई का उपयोग करना
new DateTime().toString("yyyy-MM-dd")
या बहुत स्पष्ट है
new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")
दोनों एक ही परिणाम लौटाएंगे।
java.util.Date
, java.util.Calendar
और java.text.SimpleTextFormat
अब कर रहे हैं विरासत , द्वारा का स्थान ले लिया java.time कक्षाएं। इसके अलावा, जोडा-टाइम परियोजना अब रखरखाव मोड में है , जिसमें टीम java.time को प्रवास की सलाह दे रही है।
Clock
जावा 8 में कार्यान्वयन बिल्कुल विरासत वर्गों के समान है। केवल जावा 9 में एक नया कार्यान्वयन आता है, जो वर्तमान क्षण को एक संकल्प के साथ-साथ नैनोसेकंड के साथ कैप्चर करने में सक्षम है।
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;
}
}
String
अपने फ़ंक्शन के लिए किसी भी प्रारूप में दिनांक पास नहीं कर सकते ।