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?
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);
}