我java.util.Date在Scala中使用Java的类,想要比较一个Date对象和当前时间.我知道我可以使用getTime()来计算delta:
(new java.util.Date()).getTime() - oldDate.getTime()
Run Code Online (Sandbox Code Playgroud)
但是,这只留下了一个long代表毫秒.是否有更简单,更好的方式来获得时间增量?
我有两个DateTime对象,需要找到它们的差异持续时间,
我有以下代码,但不知道如何继续它以获得预期的结果如下:
例
11/03/14 09:30:58
11/03/14 09:33:43
elapsed time is 02 minutes and 45 seconds
-----------------------------------------------------
11/03/14 09:30:58
11/03/15 09:30:58
elapsed time is a day
-----------------------------------------------------
11/03/14 09:30:58
11/03/16 09:30:58
elapsed time is two days
-----------------------------------------------------
11/03/14 09:30:58
11/03/16 09:35:58
elapsed time is two days and 05 mintues
Run Code Online (Sandbox Code Playgroud)
码
String dateStart = "11/03/14 09:29:58";
String dateStop = "11/03/14 09:33:43";
Custom date format
SimpleDateFormat format = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
Date d1 = null;
Date d2 = null; …Run Code Online (Sandbox Code Playgroud) 我有一个开始日期和结束日期.两个日期之间的持续时间应为年,月和日.我是java的新手.当我运行以下方法时,我获得的是0年,12个月1天.请提供替代方案,以获得年,月和日的准确差异.
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class Duration {
private String getAssignmentDuration(java.util.Date oldDate, java.util.Date newDate) {
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
if (oldDate.compareTo(newDate) > 0) {
c1.setTime(newDate);
c2.setTime(oldDate);
} else {
System.out.println("invalid");
return "Invalid selection";
}
int year = 0;
int month = 0;
int days = 0;
boolean doneMonth = false;
boolean doneYears = false;
while (c1.before(c2)) {
//log.debug("Still in Loop");
if (!doneYears) {
c1.add(Calendar.YEAR, 1);
year++;
}
if (c1.after(c2) || doneYears) …Run Code Online (Sandbox Code Playgroud)