如何将String(hh:mm)转换为与当前日期相关的日期

时间:2017-11-09 22:03:11

标签: java android date time

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

我有这样的字符串(来自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的当前数据+时间,然后将其与当前日期和时间进行比较。

1 个答案:

答案 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