2016-04-12 111 views
0

你好我試圖將格式爲「17:50」的字符串轉換爲android中的日期,但是當我嘗試運行此代碼時,我從字符串中獲取了正確的小時,​​但完整日期是從1970年開始的。我需要這個日期來安排當天的某個特定時間或第二天的一些本地通知。[Android]從字符串獲取小時

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 

回答

0

這不是錯誤,您的代碼運行良好。如果你想得到當前日期,你必須添加當前日期和1970年1月1日之間的差額。

你的解析日期給你17:30小時,這意味着17 * 60 * 60 * 1000毫秒+30 * 60 + 1000毫秒。

這樣你可以找到當前日期:https://stackoverflow.com/a/1908419/4142087

+0

我試過用「HH:mm」和「H:mm」,我得到了相同的結果 –

+0

啊,哈哈,問題是你只能從0得到17:50,這就是爲什麼我要編輯答案 –

+0

@RamonVasconcelos。 ) –

0

什麼建議安東是正確的,而目前的日/次日邏輯是你的自定義實現。你必須檢查當前的時間,如果超過這個時間,跳到第二天設置鬧鐘。