[英]How to get time difference between two dates in Android App?
我正在嘗試實現一個時間計數器(從0開始計數),它基本上得到了保存的時間變量(startTime,它是在用戶點擊一個按鈕時創建的)並減去當前時間(Calendar.getInstance()可能?這樣結果就是兩次之間的差異(HH:MM:SS)。 這個方法將在計時器的每個刻度上運行,以便文本視圖每秒更新一次,有效地創建我的計時器。
現在,我采用這條迂回路線,因為這是我能夠找到的唯一方法,即使應用程序被殺,也可以節省時間。 這是因為startTime變量在創建后立即保存到SharedPreferences,並且在每個Tick中,系統只需找到startTime和當前時間之間的差異即可在現場計算我的計時器。
現在,我已經嘗試將我的startTime作為Calendar變量並初始化為:
Calendar startTime = Calendar.getInstance();
然后
elapsedTime = startTime - Calendar.getInstance();
但顯然,這不起作用。
在一個用C#編寫的類似項目中,我能夠使用它,雖然使用了DateTime變量......在Android中有這樣的方法嗎?
如果這太復雜了,是否有更好的方法來保存我的天文台計步器進度?
謝謝,麻煩您了!
如果您只有一個開始時間,則使用SharedPreference
來存儲開始時間是完全正確的,盡管您可能希望存儲Calendar.getInstance().getTimeInMillis()
而不是對象本身。 然后,您可以使用恢復它
long startMillis = mSharedPreferences.getLong(START_TIME_KEY, 0L);
Calendar startTime = Calendar.getInstance();
startTime.setTimeInMillis(millis);
計算差異通常比毫秒更容易:
long now = System.currentTimeMillis();
long difference = now - startMillis;
然后,您可以使用DateUtils.formatElapsedTime()輸出它:
long differenceInSeconds = difference / DateUtils.SECOND_IN_MILLIS;
// formatted will be HH:MM:SS or MM:SS
String formatted = DateUtils.formatElapsedTime(differenceInSeconds);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.