我'想从字符串计算当前时间和时间之间的差异(以分钟为单位)。
我有这样的字符串(来自SQlite数据库):
String time1= "22:50";
我的当前日期为:
Date currentDate = new Date()
long test = currentData.getTime();
解析字符串到目前为止:
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
oldDate = dateFormat.parse(time1);
然后差异:
diff = test - oldDate.getTime();
long seconds = diff / 1000;
long minutes = seconds / 60;
但主要问题是由缺乏当前数据信息引起的(我只有时间)。 我想拥有:来自String的当前数据+时间,然后将其与当前日期和时间进行比较。
答案 0 :(得分:2)
使用Java 8时间,将时间解析为LocalTime
,将其应用于具有今天日期的LocalDate
,然后根据需要格式化结果。
简而言之:
// returns "2017-11-09 22:50:00"
LocalDate.now().atTime(LocalTime.parse("22:50"))
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
如果你的Android还没有Java 8,请使用ThreeTen Android Backport。