String格式与Java中当前时间之间的日期减法

时间:2015-01-14 14:15:18

标签: java jsp java-ee

我想知道如何实现以下方案。我有一个String格式的日期(" mm / dd / yy HH:MM"):

String createdDate="01/14/15 08:11"

我需要从createdDate获得时间。如果经过的时间超过4小时,我必须执行一些操作,如果不是,我必须执行其他操作。

简而言之,我需要在小时和分钟中获得创建日期和当前日期/时间的差异。

3 个答案:

答案 0 :(得分:1)

  String format = ("mm/dd/yy HH:MM");
  String createdDate = "01/14/15 08:11";

  DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
  LocalDateTime dateTime = LocalDateTime.parse(createdDate, formatter);

  Duration duration = Duration.ofHours(4);

如果您想使用Java 8,它就是答案的开始。

请参阅http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html以了解此问题

答案 1 :(得分:0)

首先,M - 日期格式代表月份,m - 分钟

答案 2 :(得分:0)

final long millisInHour = 3600000; //Number of milliseconds in an hour
final SimpleDateFormat format = new SimpleDateFormat("MM/dd/yy HH:mm"); //Format to parse
final String createdDate = "01/14/15 08:11"; //The date to calculate elapsed time from

final long parsedMillis = format.parse(createdDate).getTime(); //Parse string and get the time in millis
final long currentMillis = System.currentTimeMillis(); //Get the current time in millis
final long millisElapsed = parsedMillis - currentMillis; //Calculate elapsed millis

long hoursElapsed = millisElapsed / millisInHour; //Calculate the hours elapsed