簡體   English   中英

如何使用毫秒獲得android中兩個日期之間的差異?

[英]How do I get difference between two dates in android with millisec?

我的 SimpleDateFormat 格式是“HH:mm:ss.SSS”

我的示例時間:“00:01:20.442”

如何獲取(提取)毫秒442到字符串?

我找到了代碼:

long diff = date1.getTime() - date2.getTime();
long mseconds = ?????????;
long seconds = diff / 1000;
long minutes = seconds / 60;
long hours = minutes / 60;
long days = hours / 24;

System.out.println("毫秒:"+ String.valueOf(mseconds));

PS 我使用 API 19 (Adroid 4.4.2)

使用余數運算符,您可以得到除以 1000 的余數

long mseconds = diff % 1000;

但請注意,您要求的毫秒值 (442) 與您為獲取secondsminutes等所做的不匹配。以seconds ,您將獲得日期之間的秒數,這可能是在數十萬取決於日期,而不僅僅是 0-59。

如果目標是獲得天、小時(一天內)、分鍾(一小時內)等,那么:

long mseconds = diff % 1000;
long seconds = (diff / 1000) % 60;
long minutes = (seconds / 60) % 60;
long hours = (minutes / 60) % 24;
long days = hours / 24;

使用Joda Time庫(在我看來應該在每個使用時間的項目中):

final long millis = DateTime.parse("00:01:20.442", DateTimeFormat.forPattern("HH:mm:ss.SSS")).getMillisOfSecond();
assertEquals(442, millis);

或者,如果您想要所有這些:

final DateTime dt = DateTime.parse("00:01:20.442", DateTimeFormat.forPattern("HH:mm:ss.SSS"));

final long millis = dt.getMillisOfSecond(); //442
final long second = dt.getSecondOfMinute(); //20
final long min = dt.getMinuteOfHour(); //1
final long hour = dt.getHourOfDay(); //0

為什么不簡單地將字符串拆分為. 並使用第二個元素? 喜歡:

long millis = Long.parseLong(dateStr.split(".")[1]);

其中dateStrHH:mm:ss.SSS形式的String

這比使用 3rd 方庫來完成簡單任務要好得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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