Skip to content

Instantly share code, notes, and snippets.

@MenoData
Last active September 7, 2017 12:22
Show Gist options
  • Save MenoData/69ee60a59544f44ce45810e3ed7db86a to your computer and use it in GitHub Desktop.
Save MenoData/69ee60a59544f44ce45810e3ed7db86a to your computer and use it in GitHub Desktop.
import net.time4j.Duration;
import net.time4j.ClockUnit;
import java.text.ParseException;
import java.time.LocalTime;
import java.time.temporal.TemporalAmount;
public class DurationFormatPattern {
public static void main(String... args) throws ParseException {
String input = "5.2345";
// parse your input (unknown count of digits for second part, we assume maximum of 6)
Duration.Formatter<ClockUnit> parser = Duration.formatter(ClockUnit.class, "#####s.ffff");
Duration<ClockUnit> duration = parser.parse(input);
// format your duration object (using two-digit-components for hour, minute etc)
Duration.Formatter<ClockUnit> printer = Duration.formatter(ClockUnit.class, "hh:mm:ss.ffff");
System.out.println("ISO-8601: " + duration); // PT5,234500000S
System.out.println(printer.format(duration)); // 00:00:05.2345
// possible conversions to java.time-type
TemporalAmount threeten = duration.toTemporalAmount();
System.out.println(LocalTime.MIDNIGHT.plus(threeten)); // 00:00:05.234500
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment