如何在给定时间内转换当前时间的差异,以创建时间格式的字符串:HH:mm?恩。 18:36
我做了以下但是,它不是24小时格式,它会将AM / PM添加到最后,并且它是3小时关闭。
java.util.Date today = new java.util.Date();
java.sql.Timestamp ts1 = new java.sql.Timestamp(today.getTime());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss");
java.util.Date parsedDate = dateFormat.parse(time);
java.sql.Timestamp ts2 = new java.sql.Timestamp(parsedDate.getTime());
long nowTime = ts1.getTime();
long givenTime = ts2.getTime();
long timeDiff = givenTime - nowTime;
//convert to string
java.util.Date d = new java.util.Date(timeDiff);
result = DateFormat.getTimeInstance(DateFormat.SHORT).format(d);
//Outputs: 6:56 PM for example
答案 0 :(得分:3)
你可以做的一件容易的事就是为两个日期调用getTime(),然后像这样减去它们:
long timeDiff = today.getTime() - ts1.getTime()
这应该给你两次之间的毫秒差异。之后你知道一秒钟是1k毫秒,1分钟60秒,1小时是60分钟等等。
答案 1 :(得分:2)
看看Commons Lang DurationFormatUtils。
或者Joda-Time的PeriodFormatter。