I understand that LocalTime is time zone agnostic. But I would like to get hours in Central Standard Time (CST) zone. All I am given is time in String:
String start = "11:00" //11 am CST. 
LocalTime startTime = LocalTime.parse(start);
This is good but server is running in different time-zone. So it will interpret it as 11 am UTC. I want LocalTime to be in CST. I need to in CST.
LocalDateTime.now() is actually a shortcut for LocalDateTime.now(Clock.systemDefaultZone()), where Clock.class represents some date-time instant (see docs), and static method systemDefaultZone() returns the date-time instant of your PC.
In your case it's possible to use "clock" for a different zone (zone with id="CST" doesn't exist but you can choose "America/Chicago" instead - see explanation in this answer).
LocalTime currentTime = LocalTime.now(Clock.system(ZoneId.of("America/Chicago")));
UPD Didn't understand the task properly. In this case it's actually easier to convert  currentTime instead of startTime to needed zone.
LocalTime currentTime = LocalTime.now(Clock.system(ZoneId.of("Europe/London")));
or, as Ole V.V. reminded:
LocalTime currentTime = LocalTime.now(ZoneId.of("Europe/London"));
then you can compare it with unmodified startTime (in this case - 11:00)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With