tl; डॉ
Java.time का उपयोग करना ...
LocalDate.parse( // Generate `LocalDate` object from String input.
"23/2/2010" ,
DateTimeFormatter.ofPattern( "d/M/uuuu" )
)
.getDayOfWeek() // Get `DayOfWeek` enum object.
.getDisplayName( // Localize. Generate a String to represent this day-of-week.
TextStyle.SHORT_STANDALONE , // How long or abbreviated. Some languages have an alternate spelling for "standalone" use (not so in English).
Locale.US // Or Locale.CANADA_FRENCH and such. Specify a `Locale` to determine (1) human language for translation, and (2) cultural norms for abbreviation, punctuation, etc.
)
मंगल
इस कोड को IdeOne.com पर लाइव देखें (लेकिन केवलLocale.US वहां काम करता है)।
java.time
ऊपर मेरा उदाहरण कोड देखें, और Przemek द्वारा java.time के लिए सही उत्तर देखें ।
क्रमसूचक संख्या
यदि बस दिन का समय वांछित है, तो इसे कैसे प्राप्त किया जा सकता है?
क्रमिक संख्या के लिए, DayOfWeekइस तरह के बजाय एनम ऑब्जेक्ट के आसपास से गुजरने पर विचार करें DayOfWeek.TUESDAY। ध्यान रखें कि एक DayOfWeekस्मार्ट ऑब्जेक्ट है, न कि केवल एक स्ट्रिंग या मात्र पूर्णांक संख्या। उन enum ऑब्जेक्ट्स का उपयोग करना आपके कोड को अधिक स्व-दस्तावेजीकरण बनाता है, मान्य मान सुनिश्चित करता है, और प्रकार-सुरक्षा प्रदान करता है ।
लेकिन अगर आप जोर देते हैं, तो DayOfWeekएक नंबर के लिए पूछें । आपको आईएसओ 8601 मानक के अनुसार सोमवार-रविवार के लिए 1-7 मिलेंगे ।
int ordinal = myLocalDate.getDayOfWeek().getValue() ;
Joda समय
अद्यतन: जोडा-टाइम परियोजना अब रखरखाव मोड में है। टीम java.time कक्षाओं की ओर पलायन की सलाह देती है। Java.time फ्रेमवर्क जावा 8 में बनाया गया है (साथ ही जावा 6 और 7 के लिए वापस पोर्ट किया गया है और आगे एंड्रॉइड के लिए अनुकूलित है )।
यहाँ उदाहरण कोड कोड का उपयोग कर रहा है , जो कि Bozho द्वारा स्वीकार किए गए उत्तर में उल्लिखित है, जैसा कि Joda-Time Library संस्करण 2.4 है । Joda.util.ate/.Calendar क्लासेस जावा के साथ बंडल करके Joda-Time कहीं बेहतर है।
LocalDate
Joda- समय प्रदान करता है LocalDate कक्षा को बिना किसी समय-दिन या समय क्षेत्र के केवल तारीख का प्रतिनिधित्व करने की । बस यह प्रश्न किसके लिए कहता है। जावा के साथ पुराने java.util.Date/.Calendar क्लासेस में इस अवधारणा का अभाव है।
पार्स
स्ट्रिंग को दिनांक मान में पार्स करें।
String input = "23/2/2010";
DateTimeFormatter formatter = DateTimeFormat.forPattern( "d/M/yyyy" );
LocalDate localDate = formatter.parseLocalDate( input );
उद्धरण
सप्ताह संख्या और नाम के दिन के मूल्य को निकालें।
int dayOfWeek = localDate.getDayOfWeek(); // Follows ISO 8601 standard, where Monday = 1, Sunday = 7.
Locale locale = Locale.US; // Locale specifies the human language to use in determining day-of-week name (Tuesday in English versus Mardi in French).
DateTimeFormatter formatterOutput = DateTimeFormat.forPattern( "E" ).withLocale( locale );
String output = formatterOutput.print( localDate ); // 'E' is code for abbreviation of day-of-week name. See Joda-Time doc.
String outputQuébécois = formatterOutput.withLocale( Locale.CANADA_FRENCH ).print( localDate );
ढेर
सांत्वना देना।
System.out.println( "input: " + input );
System.out.println( "localDate: " + localDate ); // Defaults to ISO 8601 formatted strings.
System.out.println( "dayOfWeek: " + dayOfWeek );
System.out.println( "output: " + output );
System.out.println( "outputQuébécois: " + outputQuébécois );
Daud
जब चला।
input: 23/2/2010
localDate: 2010-02-23
dayOfWeek: 2
output: Tue
outputQuébécois: mar.
जावा के बारे में
Java.time ढांचे जावा 8 और बाद में बनाया गया है। इन कक्षाओं परेशानी वर्ष प्रतिस्थापित विरासत जैसे तिथि-समय कक्षाएं java.util.Date, Calendar, और SimpleDateFormat।
Joda समय परियोजना, अब में रखरखाव मोड , प्रवास करने की सलाह देता java.time कक्षाएं।
अधिक जानने के लिए, Oracle ट्यूटोरियल देखें । और कई उदाहरणों और स्पष्टीकरणों के लिए ढेर अतिप्रवाह खोजें। विशिष्टता JSR 310 है ।
Java.time कक्षाएं कहाँ से प्राप्त करें?
ThreeTen-अतिरिक्त परियोजना अतिरिक्त कक्षाओं के साथ java.time फैली हुई है। यह परियोजना java.time के लिए भविष्य के संभावित अतिरिक्त के लिए एक साबित जमीन है। आप यहाँ कुछ उपयोगी वर्गों जैसे मिल सकता है Interval, YearWeek, YearQuarter, और अधिक ।