Recipe Name:
Rewrite toTimeOfDay() to toLocalTime()
Description:
Rewrite toTimeOfDay() to toLocalTime()
Level:
warning
Language:
- java
Tags:
- java.time
- framework specific
- Joda-Time
- quality
Documentation
Migrate from org.joda.time.DateTime to Java Time
Joda-Time DateTime migrates to java.time ZonedDateTime or OffsetDateTime.
ZonedDateTime is the same concept, date and time with time-zone.
OffsetDateTime is a new concept, date and time with offset from UTC.
BeforeDateTime dateTime = new DateTime(); int monthOfYear = dateTime.getMonthOfYear();After
ZonedDateTime dateTime = ZonedDateTime.now(); int monthOfYear = dateTime.getMonthValue();References
Recipe
id: scw:java.time:Joda-Time:DateTime-toTimeOfDay version: 10 metadata: name: Rewrite toTimeOfDay() to toLocalTime() shortDescription: Rewrite toTimeOfDay() to toLocalTime() level: warning language: java enabled: true comment: |- Joda-Time originally included a 'TimeOfDay' class which has been deprecated in favour of LocalTime. The DateTime class had a deprecated method toTimeOfDay() to create a TimeOfDay object from an existing DateTime. This recipe is supplied to provide a migration in the case where the code-base is still using this deprecated method. There is no TimeOfDay class in java.time, however the concept is represented by LocalTime, so we can use toLocalTime() to achieve the same result. This recipe is designed to match on broken code as part of an overall Joda-Time to java.time migration. The method that is being searched for does not actually exist on ZoneDateTime/OffsetDateTime. After migrating a DateTime instance to a ZoneDateTime or OffsetDateTime, subsequent calls may be made to methods that existed for DateTime, but no longer exist for ZonedDateTime/OffsetDateTime. This recipe matches on the methodname that no longer exists, and suggests an equivalent rewrite that will work for java.time. descriptionFile: descriptions/datetime.html tags: java.time;framework specific;Joda-Time;quality search: methodcall: argCount: 0 name: toTimeOfDay anyOf: - type: java.time.ZonedDateTime - type: java.time.OffsetDateTime availableFixes: - name: Rewrite method call to java.time equivalent toLocalTime() actions: - rewrite: to: '{{{ qualifier }}}.toLocalTime()' - modifyAssignedVariable: type: java.time.LocalTime