33 lines
1.1 KiB
Java
33 lines
1.1 KiB
Java
package de.jotoho.waituntil;
|
|
|
|
import java.time.Instant;
|
|
import java.time.ZonedDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.FormatStyle;
|
|
import java.time.temporal.ChronoUnit;
|
|
import java.util.*;
|
|
|
|
import java.lang.Math;
|
|
|
|
public final class Sleep {
|
|
public static void waitUntilTimeStamp(ZonedDateTime timestamp) {
|
|
try {
|
|
Thread.sleep(Math.max(0, Instant.now().until(timestamp, ChronoUnit.MILLIS)));
|
|
} catch (final InterruptedException ignored) {
|
|
}
|
|
|
|
final String formattedTimeStamp =
|
|
DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG)
|
|
.withZone(TimeZone.getDefault().toZoneId())
|
|
.format(Instant.now());
|
|
|
|
final String msg = switch (GlobalConf.applicationOutputLanguage) {
|
|
case GlobalConf.langGerman -> "Erfolgreich bis %s gewartet!";
|
|
default -> "Successfully waited until %s";
|
|
};
|
|
|
|
final String msgWithData = msg.formatted(formattedTimeStamp);
|
|
System.err.println(msgWithData);
|
|
}
|
|
}
|