naX*_*aXa 21 java time-format period java-8
我想Period
使用像这样的模式来格式化YY years, MM months, DD days
.Java 8中的实用程序旨在设置时间格式,但不包括句点或持续时间.PeriodFormatter
在Joda时间有一个.Java有类似的实用程序吗?
Ort*_*kni 15
一种解决方案是简单地使用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());
Run Code Online (Sandbox Code Playgroud)
如果你真的需要使用的功能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);
Run Code Online (Sandbox Code Playgroud)
没有必要使用String.format()
简单的字符串格式.使用普通的旧字符串连接将由JVM优化:
Function<Period, String> format = p -> p.getYears() + " years, " + p.getMonths() + " months, " + p.getDays() + " days";
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
763 次 |
最近记录: |