I would like to convert a number of seconds into ISO_8601/Duration in Java.
http://en.wikipedia.org/wiki/ISO_8601#Durations
Are there any existing methods to do it that are already built in?
Since ISO 8601 allows for the individual fields in a duration string to overflow, you could just prepend "PT" to the number of seconds and append "S":
int secs = 4711;
String iso8601format = "PT" + secs + "S";
This will output "PT4711S", which is equivalent to "PT1H18M31S".
I recommend using the Period object from the JodaTime library. Then you could write a method like so:
public static String secondsAsFormattedString(long seconds) {
Period period = new Period(1000 * seconds);
return "PT" + period.getHours() + "H" + period.getMinutes() + "M" + period.getSeconds() + "S";
}
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