I want to add minutes to a LocalDateTime
, like this:
public Timestamp addMinutes(long minutes, LocalDateTime recordDate) { LocalDateTime minAddedTime = recordDate.plusMinutes((long) minutes); return minAddedTime;
This gives an error on daylight saving dates.
For example my localdatetime = 2021-10-31 02:00:00.0
,
minutes = 1440
and return value should be 2021-11-01 01:00:00.0
. Instead I get 2021-11-01 02:00:00.0
.
How should I solve this?
Advertisement
Answer
I used zoned date time to get right answer.
public Timestamp addMinutes(long minutes, Timestamp recordDate) { ZonedDateTime zonedDateTime = recordDate.toLocalDateTime().atZone(ZoneId.systemDefault()); LocalDateTime minAddedTime = zonedDateTime.plusMinutes(minutes).toLocalDateTime(); return Timestamp.valueOf(minAddedTime); }