Need Feedback on JUnit test comparing two timestamps
The problem here is the call to the new operator inside your code under test (cut). So the way to go is to inject this dependency into your cut. Of cause the (failed) implementation of the Java Singelton Pattern is a problem too.
By looking at the API of the Date class we find that it is mutable (which raised lots of discussions when it was introduced). This gives us the opportunity to define a member variable of type Date and reuse is in all the methods of the cut. Of cause in each method  Date.setTime(milliseconds) needs to be called where we pass in System.currentTimeMillis().
Of cause this is a new requirement to our cut that needs its own UnnitTest methods.
 class InjectDateTest {

    static class LoggerService {

        private Date date;

        public LoggerService(Date date) {
            this.date = date;
        }

        public Long startTimeFrame() {
            date.setTime(System.currentTimeMillis());
            return date.getTime();
        }

    }

    private LoggerService loggerService;
    private Date loggerDate = new Date();

    @BeforeEach
    void setUp() throws Exception {
        loggerService = new LoggerService(loggerDate);
    }

    @Test
    public void shouldSetTimeAfterCall() throws InterruptedException {
        long creationTime = loggerDate.getTime();       
        Thread.sleep(200, 0);
        loggerService.startTimeFrame();
        assertTrue(creationTime &lt; loggerDate.getTime(),
                String.format(&quot;time in date object %s &lt; %s&quot;, creationTime, loggerDate.getTime())
                );
    }

    @Test
    public void testStartTimeFrame() {
        Long startTimeFrame = loggerService.startTimeFrame();
        assertEquals(loggerDate.getTime(), startTimeFrame);
    }

}