Java中解析持续时间的最干净方法
scala.concurrent.duration包提供了初始化持续时间的能力,如下所示:Java中解析持续时间的最干净方法,java,jodatime,Java,Jodatime,scala.concurrent.duration包提供了初始化持续时间的能力,如下所示: Duration("5 minutes") 我无法在Java中找到一个等价物,使我能够轻松地做到这一点。任何建议(除了从Java使用scala?)Java本身不处理任何持续时间格式。您将需要第三方库,如或我的库,以便做您想要的 Joda时间(基于建筑商): PeriodFormatter pf = new PeriodFormatterBuilder() .appendMinutes(
Duration("5 minutes")
我无法在Java中找到一个等价物,使我能够轻松地做到这一点。任何建议(除了从Java使用scala?)Java本身不处理任何持续时间格式。您将需要第三方库,如或我的库,以便做您想要的 Joda时间(基于建筑商):
PeriodFormatter pf =
new PeriodFormatterBuilder()
.appendMinutes()
.appendSuffix(" minute", " minutes")
.toFormatter();
Period p = pf.parsePeriod("5 minutes");
System.out.println(p); // PT5M
Duration<ClockUnit> d =
Duration.formatter(ClockUnit.class, "{m: :en:ONE=minute:OTHER=minutes}")
.parse("5 minutes");
System.out.println(d); // PT5M
Period joda = ISOPeriodFormat.standard().parsePeriod("PT5M");
System.out.println(PeriodFormat.wordBased(Locale.ENGLISH).print(joda));
// 5 minutes
Duration<ClockUnit> time4j = Duration.parseClockPeriod("PT5M");
System.out.println(PrettyTime.of(Locale.ENGLISH).print(time4j));
// 5 minutes
Time4J(基于模式):
PeriodFormatter pf =
new PeriodFormatterBuilder()
.appendMinutes()
.appendSuffix(" minute", " minutes")
.toFormatter();
Period p = pf.parsePeriod("5 minutes");
System.out.println(p); // PT5M
Duration<ClockUnit> d =
Duration.formatter(ClockUnit.class, "{m: :en:ONE=minute:OTHER=minutes}")
.parse("5 minutes");
System.out.println(d); // PT5M
Period joda = ISOPeriodFormat.standard().parsePeriod("PT5M");
System.out.println(PeriodFormat.wordBased(Locale.ENGLISH).print(joda));
// 5 minutes
Duration<ClockUnit> time4j = Duration.parseClockPeriod("PT5M");
System.out.println(PrettyTime.of(Locale.ENGLISH).print(time4j));
// 5 minutes
Time4J使用ISO:
PeriodFormatter pf =
new PeriodFormatterBuilder()
.appendMinutes()
.appendSuffix(" minute", " minutes")
.toFormatter();
Period p = pf.parsePeriod("5 minutes");
System.out.println(p); // PT5M
Duration<ClockUnit> d =
Duration.formatter(ClockUnit.class, "{m: :en:ONE=minute:OTHER=minutes}")
.parse("5 minutes");
System.out.println(d); // PT5M
Period joda = ISOPeriodFormat.standard().parsePeriod("PT5M");
System.out.println(PeriodFormat.wordBased(Locale.ENGLISH).print(joda));
// 5 minutes
Duration<ClockUnit> time4j = Duration.parseClockPeriod("PT5M");
System.out.println(PrettyTime.of(Locale.ENGLISH).print(time4j));
// 5 minutes
Duration time4j=Duration.parseClockPeriod(“PT5M”);
System.out.println(PrettyTime.of(Locale.ENGLISH).print(time4j));
//5分钟
如果您寻找非scala解决方案,但最终想要获得scala持续时间,那么您还将获得额外的转换开销,因此您可能会继续使用scala。如果需要规范化或国际化等特殊功能,我只会选择另一个库。还要记住,Java库主要不是为scala编写的。