Make sure the current time reaches midnight / or the next day at Joda Time?

I want the program to check if the current time reaches midnight and then do something.

I've tried this:

if ( == {
    //do stuff


The problem is that most of the time, the method that this function resides in may not be called when the completeness happens exactly. Is there a way to check if the next day or something similar happens?

I am trying to do a daily file poll for binaries (and log4j does not execute binary) using an if statement.


source to share

1 answer

Since you don’t know when your method will be called, I suggest you keep the date for comparison and forget the clock time part or if midnight was attacked.

private LocalDate lastCheck = null;

public boolean isNewDay() {
  LocalDate today =;
  boolean ret = lastCheck == null || today.isAfter(lastCheck);
  lastCheck = today;
  return ret;


It's good that if it was received during the method call, you can use the following scheme:

DateTime now =;
DateTime startOfDay = now.withTimeAtStartOfDay();
DateTime latest = startOfDay.plusMinutes(1); // tolerance, you can adjust it for your needs

if (new Interval(startOfDay, latest).contains(now)) {
  // do stuff




All Articles