I have never used JodaTime before, but answering this question, How to get ordinal Weekdays in a Month.
I tried it and came up with this ugly code to unset all fields below day:
DateTime startOfMonth = input.withDayOfMonth(1) .withHourOfDay(0) // there .withMinuteOfHour(0) // has got to .withSecondOfMinute(0) // be a shorter way .withMillisOfSecond(0); // to do this
Where the Commons / Lang equivalent using DateUtils would be
Date startOfMonth = DateUtils.truncate(input, Calendar.MONTH);
What's the preferred idiom to do that in JodaTime?
Truncate this date, leaving the field specified as the most significant field. Determines how two calendars compare up to no more than the specified most significant field. Determines how two dates compare up to no more than the specified most significant field.
Joda-Time provides a quality replacement for the Java date and time classes. Joda-Time is the de facto standard date and time library for Java prior to Java SE 8. Users are now asked to migrate to java. time (JSR-310). Joda-Time is licensed under the business-friendly Apache 2.0 licence.
You can use roundFloorCopy() to mimic DateUtils.truncate
Date truncateMonth = DateUtils.truncate(input, Calendar.MONTH); -> DateTime truncateMonth = input.dayOfMonth().roundFloorCopy(); Date truncateMinute = DateUtils.truncate(input, Calendar.MINUTE); -> DateTime truncateMinute = input.minuteOfDay().roundFloorCopy(); Date truncateHourOfDay = DateUtils.truncate(input, Calendar.HOUR_OF_DAY); -> DateTime truncateHourOfDay = input.hourOfDay().roundFloorCopy()
Use the withMillisOfDay()
method to shorten the syntax.
DateTime startOfMonth = input.withDayOfMonth(1).withMillisOfDay(0);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With