Recipe Name:
Convert Joda-Time DateTimeFormat.longDate()
Description:
Convert Joda-Time DateTimeFormat.longDate()
Level:
warning
Language:
- java
Tags:
- framework specific
- java.time
- Joda-Time
- quality
Documentation
Migrate from org.joda.time.DateTimeFormat to Java Time
Joda-Time DateTimeFormat and ISODateTimeFormat migrate to java.time DateTimeFormatter.
Joda-time and java.time use same concept for DateTimeFormatters
There are 4 predefined types of date, they are:
- Full
- Long
- Medium
- Short
For parsing, all 4 methods have equivalents in java.time.
Be aware if you are using the correct pattern for this formatter.
E.g. Using a datetime formatter to try parse date only.
Examples
Format
BeforeDateTimeFormatter joda = DateTimeFormat.fullDate(); String jodaResult = joda.print(long);After
java.time.format.DateTimeFormatter javaFormatter = java.time.format.DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL); String javaResult = javaFormatter.format(ZonedDateTime.ofInstant(Instant.ofEpochMilli(long), ZoneId.systemDefault()));
Parse
BeforeDateTimeFormatter jodaDtf = DateTimeFormat.fullDate(); long jodaResult = jodaDtf.parseMillis(expectedString);After
java.time.format.DateTimeFormatter javaDtf = java.time.format.DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL); long javaResult = java.time.LocalDate.parse(expectedString, javaDtf).atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli();References
Recipe
id: scw:java.time:Joda-Time:datetime-format-longDate version: 10 metadata: name: Convert Joda-Time DateTimeFormat.longDate() shortDescription: Convert Joda-Time DateTimeFormat.longDate() level: warning language: java enabled: true comment: Searches for org.joda.time.format.DateTimeFormat.longDate method call and provides fixes to migrate to a java.time equivalent. descriptionFile: descriptions/datetimeformat-date.html tags: framework specific;java.time;Joda-Time;quality search: methodcall: name: longDate type: org.joda.time.format.DateTimeFormat availableFixes: - name: Convert to java.time DateTimeFormatter actions: - rewrite: to: java.time.format.DateTimeFormatter.ofLocalizedDate(java.time.format.FormatStyle.LONG) - modifyAssignedVariable: type: java.time.format.DateTimeFormatter