java - जावा कैलेंडर में फरवरी




calendar (4)

मुझे एक समस्या है, मुझे लगता है कि कोड के इस ब्लॉक का परिणाम "फरवरी" होना चाहिए, लेकिन परिणाम "मार्च" है, क्या मैं गलत कर रहा हूं?

    import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;

public class Calendario {

        public static void main(String args[]){
            Locale locale = new Locale("es","MX");
            Calendar calendarTemp = new GregorianCalendar();
            calendarTemp.set(Calendar.MONTH,1);
            String mesTemp = calendarTemp.getDisplayName(Calendar.MONTH, Calendar.LONG, locale);
            System.out.println(mesTemp);

        }

}

आपकी सहायता के लिए धन्यवाद.


Answers

क्या आपने सेट से पहले स्पष्ट उपयोग करने का प्रयास किया था? इस कदर:

Locale locale = new Locale("es","MX");
Calendar calendarTemp = new GregorianCalendar();
calendarTemp.clear(); //add this line
calendarTemp.set(Calendar.MONTH,1);

मैंने परीक्षण किया और परिणाम "फरवरी" है

सादर।


यह आज 30 जून है, और आप अपने कोड में महीने के महीने को कभी सेट नहीं करते हैं, इसलिए 30 वें मान लिया जाता है। फरवरी में 30 दिनों से भी कम समय के बाद से, यह अतिप्रवाह होता है और आप मार्च में खत्म होते हैं। नीचे दिए गए कोड को आज़माएं, और ध्यान दें, माह का दिन निर्धारित करने से उस पर क्या प्रभाव होता है, जिसे प्रदर्शित किया जा रहा है:

calendarTemp.set(Calendar.MONTH, 1);
calendarTemp.set(Calendar.DAY_OF_MONTH, 1);

एक साइड नोट के रूप में, यह Calendar क्लास से स्थिरांक का उपयोग करने के लिए कोड को अधिक पठनीय बनाता है, उदा। Calendar.FEBRUARY संख्या। जादू की संख्या के बजाय, विशेष रूप से महीनों 0-आधारित हैं ...



क्योंकि जब तक आप System.exit() (या थ्रेड क्रैश) को कॉल नहीं करते हैं, तब तक अंततः ब्लॉक को तब तक बुलाया जाएगा।





java calendar