[英]How to get the time difference between 2 dates in millisec using JodaTime
[英]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)
long mseconds = diff % 1000;
但请注意,您要求的毫秒值 (442) 与您为获取seconds
、 minutes
等所做的不匹配。以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]);
其中dateStr
是HH:mm:ss.SSS
形式的String
。
这比使用 3rd 方库来完成简单任务要好得多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.