簡體   English   中英

如何在Android App中獲取兩個日期之間的時差?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM