Recipe Name:
Argument needs to be migrated from DateTimeParser to java.time.format.DateTimeFormatter
Description:
Argument needs to be migrated from DateTimeParser to java.time.format.DateTimeFormatter
Level:
warning
Language:
  • java
Tags:
  • java.time
  • framework specific
  • Joda-Time
  • quality
Documentation

Migrate from org.joda.time.format.DateTimeFormatterBuilder to Java Time

Joda-Time DateTimeFormatterBuilder migrates to java.time DateTimeFormatterBuilder.

It's the same concept, a builder of the formatter.

Although, most of the methods have a different signature and some even have no equivalent in java.time

Those methods have no equivalent:

  • canBuildFormatter
  • canBuildPrinter
  • canBuildParser

Find some examples below:

Before
    DateTimeFormatterBuilder dtfb = new DateTimeFormatterBuilder();
    DateTimeFormatterBuilder appendSecondOfDay = dtfb.appendSecondOfDay(intArg);
After
    java.time.format.DateTimeFormatterBuilder dtfb = new java.time.format.DateTimeFormatterBuilder();
    java.time.format.DateTimeFormatterBuilder appendSecondOfDay = dtfb.appendValue(ChronoField.SECOND_OF_DAY, intArg);
References
Recipe
id: scw:java.time:Joda-Time:datetimeformatterbuilder-appendoptional
version: 10
metadata:
  name: Argument needs to be migrated from DateTimeParser to java.time.format.DateTimeFormatter
  shortDescription: Argument needs to be migrated from DateTimeParser to java.time.format.DateTimeFormatter
  level: warning
  language: java
  enabled: true
  comment: "Searches for appendOptional method call from java.time.format.DateTimeFormatterBuilder with a wrong argument.
  \nThis recipe will warn user that argument is incorrect and advice them to change it to the correct type.
  \nThe correct type for this method is java.time.format.DateTimeFormatter."
  descriptionFile: descriptions/datetimeformatterbuilder.html
  tags: java.time;framework specific;Joda-Time;quality
search:
  methodcall:
    args:
      1:
        type: org.joda.time.format.DateTimeParser
    name: appendOptional
    type: java.time.format.DateTimeFormatterBuilder
availableFixes:
- name: Open javadoc for appendOptional method
  actions:
  - goto:
      type: URL
      value: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatterBuilder.html#appendOptional-java.time.format.DateTimeFormatter-