tl; डॉ
LocalDate.now().format(
DateTimeFormatter.ofLocalizedDate( FormatStyle.MEDIUM )
.withLocale( new Locale( "no" , "NO" ) )
)
के परेशानी वाले वर्ग java.util.Dateऔर SimpleDateFormatअब विरासत हैं, java.time कक्षाओं द्वारा दबाए गए।
LocalDate
LocalDateवर्ग समय के दिन और समय क्षेत्र के बिना बिना एक दिनांक-केवल मूल्य का प्रतिनिधित्व करता।
एक तिथि निर्धारित करने में एक समय क्षेत्र महत्वपूर्ण है। किसी भी क्षण के लिए, तिथि क्षेत्र के अनुसार दुनिया भर में भिन्न होती है। उदाहरण के लिए, पेरिस फ्रांस में मध्यरात्रि के कुछ मिनट बाद एक नया दिन है जबकि अभी भी "कल" मॉन्ट्रियल क्यूबेक में है ।
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );
DateTimeFormatter
DateTimeFormatterकेवल दिनांक-भाग या समय-भाग का प्रतिनिधित्व करने वाले तार उत्पन्न करने के लिए उपयोग करें ।
DateTimeFormatterवर्ग स्वचालित रूप से कर सकते हैं स्थानीय बनाना ।
निर्दिष्ट करने के लिए, निर्दिष्ट करें:
FormatStyle यह निर्धारित करने के लिए कि स्ट्रिंग कितनी लंबी या संक्षिप्त होनी चाहिए।
Locale निर्धारित करने के लिए (ए) दिन के नाम, महीने का नाम और इस तरह के अनुवाद के लिए मानव भाषा, और (ख) संक्षिप्त नाम, पूंजीकरण, विराम चिह्न, और इस तरह के मुद्दों का निर्णय लेने वाले सांस्कृतिक मानदंडों।
उदाहरण:
Locale l = Locale.CANADA_FRENCH ;
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDate( FormatStyle.FULL ).withLocale( l );
String output = ld.format( f );
दूसरी दिशा में जा रहे हैं, आप एक स्थानीय स्ट्रिंग को पार्स कर सकते हैं।
LocalDate ld = LocalDate.parse( input , f );
ध्यान दें कि स्थानीय और समय क्षेत्र पूरी तरह से रूढ़िवादी मुद्दे हैं। आपके पास एक मॉन्ट्रियल पल जापानी भाषा में या ऑकलैंड न्यूजीलैंड क्षण हिंदी भाषा में प्रस्तुत किया जा सकता है।
एक और उदाहरण: बदलें 6 junio 2012(स्पेनिश) से 2012-06-06(मानक आईएसओ 8601 प्रारूप)। Java.time कक्षाएं आईएसओ 8601 फॉर्मेट को डिफ़ॉल्ट रूप से पार्सिंग / जनरेटिंग स्ट्रिंग्स के लिए उपयोग करती हैं।
String input = "6 junio 2012";
Locale l = new Locale ( "es" , "ES" );
DateTimeFormatter f = DateTimeFormatter.ofPattern ( "d MMMM uuuu" , l );
LocalDate ld = LocalDate.parse ( input , f );
String output = ld.toString();
Peruse प्रारूप
यहां कई स्थानों में कई स्वरूपों के परिणामों को स्वचालित रूप से स्थानीयकृत करने के लिए कुछ उदाहरण कोड दिए गए हैं।
एक EnumSetके एक कार्यान्वयन है Set, अत्यधिक दोनों कम स्मृति के उपयोग और तेजी से निष्पादन की गति जब इकट्ठा करने के लिए अनुकूलित Enumवस्तुओं। तो, EnumSet.allOf( FormatStyle.class )हमें FormatStyleएनम ऑब्जेक्ट्स के सभी चार को लूप करने का संग्रह देता है । अधिक जानकारी के लिए, enum प्रकारों पर Oracle ट्यूटोरियल देखें ।
LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 );
List < Locale > locales = new ArrayList <>( 3 );
locales.add( Locale.CANADA_FRENCH );
locales.add( new Locale( "no" , "NO" ) );
locales.add( Locale.US );
for ( Locale locale : locales )
{
System.out.println( "------| LOCALE: " + locale + " — " + locale.getDisplayName() + " |----------------------------------" + System.lineSeparator() );
for ( FormatStyle style : EnumSet.allOf( FormatStyle.class ) )
{
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDate( style ).withLocale( locale );
String output = ld.format( f );
System.out.println( output );
}
System.out.println( "" );
}
System.out.println( "« fin »" + System.lineSeparator() );
आउटपुट।
------| LOCALE: fr_CA — French (Canada) |----------------------------------
mardi 23 janvier 2018
23 janvier 2018
23 janv. 2018
18-01-23
------| LOCALE: no_NO — Norwegian (Norway) |----------------------------------
tirsdag 23. januar 2018
23. januar 2018
23. jan. 2018
23.01.2018
------| LOCALE: en_US — English (United States) |----------------------------------
Tuesday, January 23, 2018
January 23, 2018
Jan 23, 2018
1/23/18
« fin »
जावा के बारे में
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, और अधिक ।
java.util.Date,java.util.Calendarऔरjava.text.SimpleDateFormatअब कर रहे हैं विरासत , द्वारा का स्थान ले लिया java.time जावा 8 और जावा 9. देखें में बनाया गया वर्गों ट्यूटोरियल ओरेकल द्वारा ।