नमूने के माध्यम से पालन करें सरल तकनीक DateFormat
उपयोग करने के लिए होगा:
String input = "Sat Feb 17 2012";
Date date = new SimpleDateFormat("EEE MMM dd yyyy", Locale.ENGLISH).parse(input);
long milliseconds = date.getTime();
long millisecondsFromNow = milliseconds - (new Date()).getTime();
Toast.makeText(this, "Milliseconds to future date="+millisecondsFromNow, Toast.LENGTH_SHORT).show();
एक और अधिक कठिन तकनीक (कि मूल रूप से क्या DateFormat
आप के लिए करता है) यह अपने आप को पार्स शामिल (यह नहींसर्वोत्तम अभ्यास माना जाएगा):
String input = "Sat Feb 17 2012";
String[] myDate = input.split("\\s+");
int year = Integer.parseInt(myDate[3]);
String monthString = myDate[1];
int mo = monthString.equals("Jan")? Calendar.JANUARY :
monthString.equals("Feb")? Calendar.FEBRUARY :
monthString.equals("Mar")? Calendar.MARCH :
monthString.equals("Apr")? Calendar.APRIL :
monthString.equals("May")? Calendar.MAY :
monthString.equals("Jun")? Calendar.JUNE :
monthString.equals("Jul")? Calendar.JULY :
monthString.equals("Aug")? Calendar.AUGUST :
monthString.equals("Sep")? Calendar.SEPTEMBER :
monthString.equals("Oct")? Calendar.OCTOBER :
monthString.equals("Nov")? Calendar.NOVEMBER :
monthString.equals("Dec")? Calendar.DECEMBER : 0;
int day = Integer.parseInt(myDate[2]);
Calendar c = Calendar.getInstance();
c.set(year, mo, day);
long then = c.getTimeInMillis();
Time current_time = new Time();
current_time.setToNow();
long now = current_time.toMillis(false);
long future = then - now;
Date d = new Date(future);
//TODO use d as you need.
Toast.makeText(this, "Milliseconds to future date="+future, Toast.LENGTH_SHORT).show();
डेट-टाइम अवगत लाइब्रेरी का उपयोग करना अक्सर बेहतर होता है (उदा। [जोडा टाइम)] (http://joda-time.sourceforge.net/0) मिलीसेकंड में कनवर्ट करने के लिए और फिर वापस कनवर्ट करने के लिए: मिलीसेकंड टाइमजोन मतभेद, 30 दिनों के बिना महीनों, लीप साल आदि जैसी चीजों में जानकारी खो सकता है। इसलिए सटीकता के स्तर के आधार पर ... –