You’ll probably have to tweak this a bit for your own format, but try something along these lines:
PeriodFormatter formatter = new PeriodFormatterBuilder()
.appendDays().appendSuffix("d ")
.appendHours().appendSuffix("h ")
.appendMinutes().appendSuffix("min")
.toFormatter();
Period p = formatter.parsePeriod("2d 5h 30min");
note that there is a appendSuffix
that takes a variants
parameter if you need to make it more flexible.
Update: Joda Time has since added Period.toStandardDuration()
, and from there you can use getStandardSeconds()
to get the elapsed time in seconds as a long
.
If you’re using an older version without these methods you can still calculate a timestamp yourself by assuming the standard 24/hr in a day, 60min/hr, etc. (In this case, take advantage of the constants in the DateTimeConstants
class to avoid the need for magic numbers.)