SimpleDateFormat वर्ग में कौन से दिनांक प्रारूप उपलब्ध हैं?


83

क्या कोई मुझे SimpleDateFormat वर्ग में उपलब्ध दिनांक स्वरूपों के बारे में बता सकता है।

मैं आपी से गुज़रा हूं, लेकिन संतोषजनक उत्तर नहीं मिला।


3
आप किस प्रारूप के बाद हैं? आपको उन तत्वों से मिलकर एक प्रारूप बनाना होगा , जिनकी आपको आवश्यकता है।
डेविड ग्रांट

3
आप एपीआई की अनुमति देने वाले किसी भी प्रारूप का निर्माण कर सकते हैं। कोई निश्चित सूची नहीं है।
पीटर लॉरी

जवाबों:


139

दिनांक और समय प्रारूप नीचे वर्णित हैं

SimpleDateFormat (जावा प्लेटफ़ॉर्म एसई 7) - तिथि और समय पैटर्न

nआपके द्वारा संभवतः किए जा सकने वाले स्वरूपों की संख्या हो सकती है । पूर्व - dd/MM/yyyyया YYYY-'W'ww-uआप अपने आवश्यक पैटर्न को प्राप्त करने के लिए अक्षरों को मिला सकते हैं और मेल कर सकते हैं। पैटर्न पत्र निम्नानुसार हैं।

  • G - युग निर्माता (ई।)
  • y - वर्ष (1996; 96)
  • Y - सप्ताह वर्ष (2009; 09)
  • M - वर्ष में महीना (जुलाई; जुलाई; 07)
  • w - वर्ष में सप्ताह (27)
  • W - महीने में सप्ताह (2)
  • D - वर्ष में दिन (189)
  • d - महीने में दिन (10)
  • F महीने में सप्ताह का दिन (2)
  • E सप्ताह में नाम (मंगलवार; मंगल)
  • u सप्ताह का दिन नंबर (1 = सोमवार, ..., 7 = रविवार)
  • a - एएम / पीएम मार्कर
  • H - दिन में घंटे (0-23)
  • k - दिन में घंटे (1-24)
  • K - घंटे सुबह / शाम (0-11)
  • h - घंटे सुबह / दोपहर (1-12)
  • m - घंटे में मिनट (30)
  • s - मिनट में दूसरा (55)
  • S - मिलिसकॉन्ड (978)
  • z - सामान्य समय क्षेत्र (प्रशांत मानक समय; PST; GMT-08: 00)
  • Z - आरएफसी 822 समय क्षेत्र (-0800)
  • X - आईएसओ 8601 समय क्षेत्र (-08; -0800; -08: 00)

पार्स करने के लिए:

2000-01-23T04: 56: 07.000 + 0000

उपयोग: new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");


धन्यवाद Quoi..लेकिन क्या आप मुझे बता सकते हैं कि मैं कैसे ईएसटी, आईएसटी, जीडीटी, जीएमटी आदि जैसे विभिन्न मानकों में तारीखों को परिवर्तित कर सकता हूं?
अभिषेक_मिश्रा

1
फिर आप अलग-अलग लोकेल में डेट ढूंढ रहे हैं। SimpleDateFormatनिर्माता पर स्थानीय सेट करने की अनुमति दें। SimpleDateFormat formatter = new SimpleDateFormat(pattern, locale);
सुभ्रज्योति मजुमदार

ठीक thats कुछ मैं for..Thanks Quoi देख रहा था .. :)
Abhishek_Mishra

मैं आपके खुलेपन की सराहना करता हूं। :)
सुभ्रज्योति मजुमदार

Z और 'Z' को भ्रमित न करें। मैं मूर्ख था और मुझे आशा है कि कोई और मेरे जैसा नहीं होगा।
तिफान जु

52

मुझे http://www3.ntu.edu.sg/home/ehchua/programming/java/DateTimeCalendar.html से मिले कुछ उदाहरण कोड को बाहर फेंकने दूं, तब तक आप विभिन्न विकल्पों के साथ खेल सकते हैं, जब तक आप इसे पसंद नहीं करते।

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTest {
   public static void main(String[] args) {
       Date now = new Date();

       //This is just Date's toString method and doesn't involve SimpleDateFormat
       System.out.println("toString(): " + now);  // dow mon dd hh:mm:ss zzz yyyy
       //Shows  "Mon Oct 08 08:17:06 EDT 2012"

       SimpleDateFormat dateFormatter = new SimpleDateFormat("E, y-M-d 'at' h:m:s a z");
       System.out.println("Format 1:   " + dateFormatter.format(now));
       // Shows  "Mon, 2012-10-8 at 8:17:6 AM EDT"

       dateFormatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
       System.out.println("Format 2:   " + dateFormatter.format(now));
       // Shows  "Mon 2012.10.08 at 08:17:06 AM EDT"

       dateFormatter = new SimpleDateFormat("EEEE, MMMM d, yyyy");
       System.out.println("Format 3:   " + dateFormatter.format(now));
       // Shows  "Monday, October 8, 2012"

       // SimpleDateFormat can be used to control the date/time display format:
       //   E (day of week): 3E or fewer (in text xxx), >3E (in full text)
       //   M (month): M (in number), MM (in number with leading zero)
       //              3M: (in text xxx), >3M: (in full text full)
       //   h (hour): h, hh (with leading zero)
       //   m (minute)
       //   s (second)
       //   a (AM/PM)
       //   H (hour in 0 to 23)
       //   z (time zone)
       //  (there may be more listed under the API - I didn't check)

   }

}

सौभाग्य!


6

java.time

अपडेट करें

अन्य प्रश्न आउटमोडेड हैं। भयानक विरासत कक्षाएं जैसे SimpleDateFormatकि आधुनिक java.time कक्षाओं द्वारा वर्षों पहले दबा दी गई थीं ।

रिवाज

अपने स्वयं के कस्टम स्वरूपण पैटर्न को परिभाषित करने के लिए, कोड DateTimeFormatterसमान हैं, लेकिन कोड में बिल्कुल समान नहीं हैं SimpleDateFormat। प्रलेखन का अध्ययन करना सुनिश्चित करें। और कई उदाहरणों के लिए ढेर अतिप्रवाह खोजें।

DateTimeFormatter f = 
    DateTimeFormatter.ofPattern( 
        "dd MMM uuuu" , 
        Locale.ITALY 
    ) 
;

मानक आईएसओ 8601

आईएसओ 8601 दिनांक-समय मान के कई प्रकार के लिए मानक परिभाषित करता है प्रारूपों। ये प्रारूप डेटा-विनिमय के लिए डिज़ाइन किए गए हैं, जिन्हें मशीन द्वारा आसानी से पार्स किया जा रहा है और साथ ही साथ संस्कृतियों में मनुष्यों द्वारा आसानी से पढ़ा जा रहा है।

Java.time वर्गों / जब पैदा तार को पार्स डिफ़ॉल्ट रूप से आईएसओ 8601 प्रारूपों का उपयोग करें। बस toString& parseविधियों को कॉल करें । कोई स्वरूपण पैटर्न निर्दिष्ट करने की आवश्यकता नहीं है।

Instant.now().toString()

2018-11-05T18: 19: 33.017554Z

UTC में मान के लिए, Z अंत में UTC का अर्थ है, और "ज़ुलु" का उच्चारण किया जाता है।

स्थानीय बनाना

एक स्वरूपण पैटर्न निर्दिष्ट करने के बजाय, आप java.time को स्वचालित रूप से आपके लिए स्थानीय कर सकते हैं। उपयोगDateTimeFormatter.ofLocalized…विधियों का ।

किसी विशेष क्षेत्र (एक समय क्षेत्र) के लोगों द्वारा उपयोग की जाने वाली दीवार-घड़ी के समय के साथ वर्तमान क्षण प्राप्त करें।

ZoneId z = ZoneId.of( "Africa/Tunis" );
ZonedDateTime zdt = ZonedDateTime.now( z );

मानक ब्रैकेट में समय क्षेत्र के नाम को जोड़ने के लिए मानक आईएसओ 8601 प्रारूप में पाठ उत्पन्न करें।

zdt.toString (): 2018-11-05T19: 20: 23.765293 + 01: 00 [अफ्रीका / ट्यूनिस]

स्वत: स्थानीय पाठ उत्पन्न करें।

Locale locale = Locale.CANADA_FRENCH;
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( locale );

String output = zdt.format( f );

आउटपुट: lundi 5 novembre 2018 à 19:20:23 हेअर नॉर्मास्टेल डी 'इरोपे सेंट्रेल

आमतौर पर हार्ड-कोडित स्वरूपण पैटर्न के साथ झल्लाहट के बजाय ऑटो-स्थानीयकरण के लिए एक बेहतर अभ्यास।


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

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

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

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

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

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


5

यहाँ प्रारूप देखें http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

मुख्य

System.out.println("date  : " + new classname().getMyDate("2014-01-09 14:06", "dd-MMM-yyyy E hh:mm a z", "yyyy-MM-dd HH:mm"));

तरीका

 public String getMyDate(String myDate, String returnFormat, String myFormat)
            {
                DateFormat dateFormat = new SimpleDateFormat(returnFormat);
                Date date=null;
                String returnValue="";
                try {
                    date = new SimpleDateFormat(myFormat, Locale.ENGLISH).parse(myDate);
                    returnValue = dateFormat.format(date);
                } catch (ParseException e) {
                    returnValue= myDate;
                    System.out.println("failed");
                    e.printStackTrace();
                }

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