我有两个变量 - 活动开始时的时间(currentTime
)和点击按钮的时间(endTime
)。这些变量的值以毫秒为单位(System.currentTimeMillis()
)。我在Layout中使用它们,因此我将这些值转换为DateFormat "HH:mm:ss"
。
我想在durationTime
和currentTime
之间计算持续时间(endTime
)并将其转换为日期时间。请看我的代码:
public class MainActivity extends Activity {
long currentTime_ms, endTime_ms;
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
currentTime_ms = System.currentTimeMillis();
Date currentTime = new Date(currentTime_ms);
currentTime_textView.setText(sdf.format(currentTime));
}
public void btnOk_onClick(View v) {
endTime_ms = System.currentTimeMillis();
Date endTime = new Date(endTime_ms);
Date durationTime = new Date(endTime_ms - currentTime_ms);
}
}
最后我的错误持续时间。 (例如,我在2 second
之后点击按钮并获得durationTime
02:00:02 )。
你能帮我修理一下代码吗?或者也许还有其他时间计算方法?
答案 0 :(得分:0)
您可以使用SystemClock.elapsedRealtime();
计算它们之间的差异,并调用此函数,该函数将返回您要查找的String。您可以根据需要自定义它!
public String toText(long difference) {
DecimalFormat df = new DecimalFormat("00");
int remaining = (int) (difference % (3600 * 1000));
int minutes = (int) (remaining / (60 * 1000));
remaining = (int) (remaining % (60 * 1000));
int seconds = (int) (remaining / 1000);
remaining = (int) (remaining % (1000));
int cents = (int) (((int) time % 1000) / 10);
String text = "";
text += df.format(minutes) + ":";
text += df.format(seconds) + ":";
text += df.format(cents);
return text;
}
在你的情况下,这应该返回"00:02:00"
:0分,2秒,0美分。
我希望这会有所帮助!!