如何在Java 8 / jsr310中格式化句点?
2022-09-02 01:42:53
一种解决方案是简单地使用String.format
:
import java.time.Period;
Period p = Period.of(2,5,1);
String.format("%d years, %d months, %d days", p.getYears(), p.getMonths(), p.getDays());
如果你真的需要使用DateTimeFormatter
的功能,你可以使用一个临时的LocalDate
,但这是一种扭曲LocalDate
语义的黑客攻击。
import java.time.Period;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
Period p = Period.of(2,5,1);
DateTimeFormatter fomatter = DateTimeFormatter.ofPattern("y 'years,' M 'months,' d 'days'");
LocalDate.of(p.getYears(), p.getMonths(), p.getDays()).format(fomatter);
无需使用简单的字符串格式设置。使用普通的旧字符串串联将由JVM优化:String.format()
Function<Period, String> format = p -> p.getYears() + " years, " + p.getMonths() + " months, " + p.getDays() + " days";