calendar - Android में वर्ष, महीना और दिनांक प्राप्त करना




(8)

मैं निम्नलिखित कोड का उपयोग करके आज का वर्ष, महीना और दिनांक प्राप्त करने की कोशिश कर रहा हूं;

Calendar calendar = Calendar.getInstance();

int thisYear = calendar.get(Calendar.YEAR);
Log.d(TAG, "# thisYear : " + thisYear);

int thisMonth = calendar.get(Calendar.MONTH);
Log.d(TAG, "@ thisMonth : " + thisMonth);

int thisDay = calendar.get(Calendar.DAY_OF_MONTH);
Log.d(TAG, "$ thisDay : " + thisDay);

लेकिन यह "वर्ष के लिए वर्ष 1 महीने के लिए 2012 और तारीख के लिए 28" देता है जो आज की तारीख नहीं है। मैंने क्या गलत किया है?


Answers

महीना शून्य से शुरू होता है, इसलिए आपको उस महीने के साथ 1 जोड़ना होगा, जिस महीने की संख्या से हम परिचित हैं।

int thisMonth = calendar.get(Calendar.MONTH);
Log.d(TAG, "@ thisMonth : " + (thisMonth+1));

यह आपको वर्तमान माह को 1 से शुरू करके दिखाएगा।


इसको आजमाओ..

 Calendar instance = Calendar.getInstance();
 currentMonth = instance.get(Calendar.MONTH);
 currentYear = instance.get(Calendar.YEAR);

 int month=currentMonth+1;

यह आपके एंड्रॉइड सिस्टम का समय और तारीख देता है इसलिए पहले इसकी जांच करें।


import java.util.Calendar;
import java.util.TimeZone;
import android.widget.Toast;

Calendar calendar = Calendar.getInstance(TimeZone.getDefault());

int currentYear = calendar.get(Calendar.YEAR);
int currentMonth = calendar.get(Calendar.MONTH) + 1;
int currentDay = calendar.get(Calendar.DAY_OF_MONTH);

Toast.makeText(this,"Today's Date: " + currentYear + currentMonth + currentDay, Toast.LENGTH_SHORT).show();

यदि आपका एप्लिकेशन Android API 27 प्लेटफ़ॉर्म या उससे ऊपर के लिए लक्षित है, तो "TimeZone" बहुत अच्छा काम करेगा


उपयोग करने का प्रयास करें:

Date dt = new Date(); 
dt.getYear(); 
dt.getMonth(); 
dt.getDay();

और देखें कि क्या आपको वही परिणाम मिलते हैं। यदि हां, तो आपकी सिस्टम तिथि संभवतः सिंक से बाहर है। अधिक विवरण के लिए दिनांक श्रेणी के दस्तावेज़ देखें:


मैंने आपका कोड आज़माया और यह सही आउटपुट दे रहा है। आपको अपने एमुलेटर / फोन में समय की जाँच करने की कोशिश करनी चाहिए, जिस पर आप इस कोड को आज़मा रहे हैं

GetInstance डॉक्स के अनुसार, यह डिफ़ॉल्ट रूप से वर्तमान दिनांक और समय पर सेट होता है।


Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
calendar.get(Calendar.YEAR)

यहां कोड है जो उपयोगकर्ता के लिए एक अद्वितीय आईडी प्राप्त करने के लिए इस वर्ष Google I / O प्रस्तुति में रेटो मेयर का उपयोग किया जाता है:

private static String uniqueID = null;
private static final String PREF_UNIQUE_ID = "PREF_UNIQUE_ID";

public synchronized static String id(Context context) {
    if (uniqueID == null) {
        SharedPreferences sharedPrefs = context.getSharedPreferences(
                PREF_UNIQUE_ID, Context.MODE_PRIVATE);
        uniqueID = sharedPrefs.getString(PREF_UNIQUE_ID, null);
        if (uniqueID == null) {
            uniqueID = UUID.randomUUID().toString();
            Editor editor = sharedPrefs.edit();
            editor.putString(PREF_UNIQUE_ID, uniqueID);
            editor.commit();
        }
    }
    return uniqueID;
}

यदि आप इसे क्लाउड पर वरीयताओं को भेजने के लिए बैकअप रणनीति के साथ जोड़ते हैं (रेटो की talk में भी वर्णित है, तो आपके पास एक आईडी होना चाहिए जो उपयोगकर्ता से संबंध रखता है और डिवाइस को मिटा दिए जाने के बाद चारों ओर चिपक जाता है, या यहां तक ​​कि प्रतिस्थापित किया जाता है। मैं इसका उपयोग करने की योजना बना रहा हूं। आगे बढ़ने वाले विश्लेषिकी में (दूसरे शब्दों में, मैंने अभी तक यह कुछ नहीं किया है :)।





android calendar