2016-04-12 21 views
0

Merhaba Android'deki bir tarihe "17:50" biçimindeki bir dizeyi dönüştürmeye çalışıyorum ancak bu kodu çalıştırmaya çalıştığımda dizeden doğru saati alıyorum ancak tam tarih 1970’ten itibaren. Bu tarihte, günün belirli bir saatinde veya ertesi gün bazı yerel bildirimleri planlamak için ihtiyacım var.[Android] Dize ile saat kazanın

String dtStart = "17:50"; 
SimpleDateFormat format = new SimpleDateFormat("H:mm"); 
try { 
    Calendar cal = Calendar.getInstance(); 
    Date date = format.parse(dtStart); 
    cal.setTime(date); 
    System.out.println(cal.getTime()); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 


Thu Jan 01 17:50:00 BRT 1970 

cevap

0

Bu bir hata değil, kodunuz iyi çalışıyor. Sadece geçerli tarih almak istiyorsanız, geçerli gün ile 1 Ocak 1970 arasındaki farkı eklemeniz gerekir.

Ayrıştırdığınız tarihiniz 17:30 saat verir, yani 17 * 60 * 60 * 1000 ms + 30 * 60 + 1000 ms. Geçerli gün bulabilirsiniz

Bu şekilde: Anton önerdi Ne https://stackoverflow.com/a/1908419/4142087

+0

"HH: mm" ve "H: mm" ile denedim ve aynı sonucu aldım –

+0

Ah, lol, sorun sadece 17:50 den 0 olsun, bu yüzden –

+0

@RamonVasconcelos I cevabı düzenledim:) –

0

doğru olduğunu ve mevcut gün/ertesi gün mantığı özel bir uygulamasıdır. Şu anki zamanı kontrol etmelisiniz ve o zaman geçmişse, ertesi gün alarmı kurmak için atlayın.

İlgili konular