Prefer the Java standard library instead of Joda-Time
Recipe ID
org.openrewrite.java.joda.time.NoJodaTimeArtifactorg.openrewrite.recipe:rewrite-jodaBefore Java 8, Java lacked a robust date and time library, leading to the widespread use of Joda-Time to fill this gap. With the release of Java 8, the java.time package was introduced, incorporating most of Joda-Time's concepts. Features deemed too specialized or bulky for java.time were included in the ThreeTen-Extra library. This recipe migrates Joda-Time types to java.time and threeten-extra types.
Composite recipejoda-timeMSAL
Add to your build
Get a download tokenThis recipe is Moderne licensed, so the token must belong to a Moderne customer. It replaces YOUR_DOWNLOAD_TOKEN below.
~/.gradle/gradle.properties
codeGenomeUsername=you@example.com
codeGenomeToken=YOUR_DOWNLOAD_TOKEN
build.gradle.kts
plugins {
id("org.openrewrite.rewrite") version("latest.release")
}
rewrite {
activeRecipe("org.openrewrite.java.joda.time.NoJodaTime")
}
repositories {
mavenCentral()
maven {
url = uri("https://artifacts.codegenomeproject.org/maven")
credentials {
username = providers.gradleProperty("codeGenomeUsername").get()
password = providers.gradleProperty("codeGenomeToken").get()
}
}
}
dependencies {
rewrite("org.openrewrite.recipe:rewrite-joda:0.11.1")
}
Then run
./gradlew rewriteRunUsage
This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.
mod run . --recipe org.openrewrite.java.joda.time.NoJodaTimeIf the recipe isn’t available locally, install it with:
mod config recipes jar install org.openrewrite.recipe:rewrite-joda:RELEASEDefinition
This recipe runs the following recipes in order.
- Add Gradle or Maven dependency
org.openrewrite.java.dependencies.AddDependency - Change method name
org.joda.time.base.AbstractDateTime getHourOfDay()togetHourorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.base.AbstractDateTime getMinuteOfHour()togetMinuteorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.base.AbstractDateTime getSecondOfMinute()togetSecondorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.base.AbstractDateTime getMonthOfYear()togetMonthValueorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.DateTime withZone(org.joda.time.DateTimeZone)towithZoneSameInstantorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.DateTime withZoneRetainFields(org.joda.time.DateTimeZone)towithZoneSameLocalorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.DateTime withMonthOfYear(int)towithMonthorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.DateTime withHourOfDay(int)towithHourorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.DateTime withMinuteOfHour(int)towithMinuteorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.DateTime withSecondOfMinute(int)towithSecondorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.Duration standardDays(long)toofDaysorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.Duration standardHours(long)toofHoursorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.Duration standardMinutes(long)toofMinutesorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.Duration standardSeconds(long)toofSecondsorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.Duration millis(long)toofMillisorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.Duration getStandardDays()totoDaysorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.Duration getStandardHours()totoHoursorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.Duration getStandardMinutes()totoMinutesorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.Duration getStandardSeconds()togetSecondsorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.Duration toStandardDays()totoDaysorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.Duration toStandardHours()totoHoursorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.Duration toStandardMinutes()totoMinutesorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.Duration toStandardSeconds()togetSecondsorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.DateTimeZone forID(String)tooforg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.format.DateTimeFormat forPattern(String)toofPatternorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.Instant getMillis()totoEpochMilliorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.base.BaseDuration getMillis()totoMillisorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.LocalDate getMonthOfYear()togetMonthValueorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.LocalDate withMonthOfYear(int)towithMonthorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.LocalTime getHourOfDay()togetHourorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.LocalTime getMinuteOfHour()togetMinuteorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.LocalTime getSecondOfMinute()togetSecondorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.LocalTime withHourOfDay(int)towithHourorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.LocalTime withMinuteOfHour(int)towithMinuteorg.openrewrite.java.ChangeMethodName - Change method name
org.joda.time.LocalTime withSecondOfMinute(int)towithSecondorg.openrewrite.java.ChangeMethodName - Migrate Joda-Time
DateTimetojava.time.ZonedDateTimeorg.openrewrite.java.joda.time.JodaDateTimeToJavaTime - Migrate Joda-Time
AbstractInstantto Java timeorg.openrewrite.java.joda.time.JodaAbstractInstantToJavaTime - Migrate Joda-Time
Durationto Java timeorg.openrewrite.java.joda.time.JodaDurationToJavaTime - Migrate Joda-Time
Intervalto Java timeorg.openrewrite.java.joda.time.JodaIntervalToJavaTime - Migrate Joda-Time
LocalDatetojava.time.LocalDateorg.openrewrite.java.joda.time.JodaLocalDateToJavaTime - Migrate Joda-Time
LocalTimetojava.time.LocalTimeorg.openrewrite.java.joda.time.JodaLocalTimeToJavaTime - Migrate Joda-Time formatter to Java time
org.openrewrite.java.joda.time.JodaFormatterToJavaTime - Migrate Joda-Time
DateTimeZoneto Java timeorg.openrewrite.java.joda.time.JodaDateTimeZoneToJavaTime - Migrate Joda-Time
DateMidnightto Java timeorg.openrewrite.java.joda.time.JodaDateMidnightToJavaTime - Migrate Joda-Time
Instantto Java timeorg.openrewrite.java.joda.time.JodaInstantToJavaTime - Migrate Joda-Time
Days,Hours,Minutes,Secondsto Java timeorg.openrewrite.java.joda.time.JodaTimePeriodToJavaTime - Change type
DateTimetoZonedDateTimeorg.openrewrite.java.ChangeType - Change type
BaseDateTimetoZonedDateTimeorg.openrewrite.java.ChangeType - Change type
AbstractDateTimetoZonedDateTimeorg.openrewrite.java.ChangeType - Change type
DateTimeZonetoZoneIdorg.openrewrite.java.ChangeType - Change type
org.joda.time.format.DateTimeFormattertojava.time.format.DateTimeFormatterorg.openrewrite.java.ChangeType - Change type
DateTimeFormattoDateTimeFormatterorg.openrewrite.java.ChangeType - Change type
org.joda.time.Durationtojava.time.Durationorg.openrewrite.java.ChangeType - Change type
ReadableDurationtoDurationorg.openrewrite.java.ChangeType - Change type
BaseDurationtoDurationorg.openrewrite.java.ChangeType - Change type
AbstractDurationtoDurationorg.openrewrite.java.ChangeType - Change type
org.joda.time.Instanttojava.time.Instantorg.openrewrite.java.ChangeType - Change type
AbstractInstanttoInstantorg.openrewrite.java.ChangeType - Change type
ReadableInstanttoInstantorg.openrewrite.java.ChangeType - Change type
org.joda.time.Intervaltoorg.threeten.extra.Intervalorg.openrewrite.java.ChangeType - Change type
BaseIntervaltoIntervalorg.openrewrite.java.ChangeType - Change type
AbstractIntervaltoIntervalorg.openrewrite.java.ChangeType - Change type
DateMidnighttoZonedDateTimeorg.openrewrite.java.ChangeType - Change type
org.joda.time.LocalDatetojava.time.LocalDateorg.openrewrite.java.ChangeType - Change type
org.joda.time.LocalTimetojava.time.LocalTimeorg.openrewrite.java.ChangeType - Change type
org.joda.time.LocalDateTimetojava.time.LocalDateTimeorg.openrewrite.java.ChangeType
Data tables
Structured output this recipe can produce.
- Source files that had resultsSource files that were modified by the recipe run.
org.openrewrite.table.SourcesFileResults - Source files that had search resultsSearch results that were found during the recipe run.
org.openrewrite.table.SearchResults - Source files that errored on a recipeThe details of all errors produced by a recipe run.
org.openrewrite.table.SourcesFileErrors - Recipe performanceStatistics used in analyzing the performance of recipes.
org.openrewrite.table.RecipeRunStats