如何将字符串 (hh:mm) 转换为当前日期的日期

nee*_*obe 3 java time android date

我想计算当前时间和字符串时间之间的差异(以分钟为单位)。

我有这样的字符串(来自 SQlite 数据库):

 String time1= "22:50";
Run Code Online (Sandbox Code Playgroud)

我得到的当前日期为:

  Date currentDate = new Date()
   long test = currentData.getTime();
Run Code Online (Sandbox Code Playgroud)

解析迄今为止的字符串:

 SimpleDateFormat dateFormat = new SimpleDateFormat(
                                "yyyy-MM-dd HH:mm:ss");
oldDate = dateFormat.parse(time1);
Run Code Online (Sandbox Code Playgroud)

然后区别:

  diff = test - oldDate.getTime();
  long seconds = diff / 1000;
  long minutes = seconds / 60;
Run Code Online (Sandbox Code Playgroud)

但主要问题是由于缺乏当前数据信息引起的(我只有时间)。我想要:来自字符串的当前数据+时间,然后将其与当前日期和时间进行比较。

And*_*eas 5

使用 Java 8 时间,将时间解析为 a LocalTime,将其应用到带有今天日期的 a 中LocalDate,然后根据需要格式化结果。

简而言之:

// returns "2017-11-09 22:50:00"
LocalDate.now().atTime(LocalTime.parse("22:50"))
         .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
Run Code Online (Sandbox Code Playgroud)

如果您的 Android 尚未安装 Java 8,请使用ThreeTen Android Backport