Using below code, I'm attempting to start a thread when the second part of the time reaches 0 - ie when the next minute starts.

```
public class Sched {    
    public static void main(String args[]) {
        Calendar calStart = Calendar.getInstance(TimeZone.getTimeZone("GMT+1"));
        calStart.set(Calendar.SECOND, 0);   
        ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
        scheduler.scheduleAtFixedRate(new Sched().new RC(), calStart.getTime().getTime(), 3, TimeUnit.SECONDS);
    }

    private class RC implements Runnable {
        public void run() { /* some impl */}    
    }
}

```

But the thread is not starting. It appears I am not setting the start time correctly. I could get this to run by setting the `initialDelay` param to `0`, but why is setting using the calendar object not working?

FYI, hardcoding `initialDelay` to zero works (tested on JDK8): 

```
scheduler.scheduleAtFixedRate(new Sched().new RC(), 0, 3, TimeUnit.SECONDS);

```