问题描述
|
如何将给定时间的当前时间转换为时间格式为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
解决方法
一旦简单,您就可以为两个日期调用getTime(),然后像这样减去它们:
long timeDiff = today.getTime() - ts1.getTime()
那应该使您两次之间的毫秒数有所不同。之后,您知道1秒是1k毫秒,1min是60s,1h是60分钟,依此类推。
, 看看Commons Lang DurationFormatUtils。
或Joda-Time的PeriodFormatter。