概述
i want to replace JodaTime by Java 8 DateTime API.
I've got ISO-8601 period described = P2W5DT11H8M
In JodaTime i parse it very simply by executing the following code:
Period.parse("P2W5DT11H8M") and i get the successful Period object.
Can i do the same in Java 8?
解决方案
A Period in Java 8 only has year/month/day components. A Duration has hour/minute/second components. It seems that you will need to parse the string manually. One option could look like the code below (you need to add input validation etc.) - there may be better alternatives.
public static void main(String[] args) {
System.out.println(PeriodAndDuration.parse("P2W5DT11H8M"));
}
public static class PeriodAndDuration {
private final Period p;
private final Duration d;
public PeriodAndDuration(Period p, Duration d) {
this.p = p;
this.d = d;
}
public Period getPeriod() {
return p;
}
public Duration getDuration() {
return d;
}
public static PeriodAndDuration parse(String input) {
int periodStart = input.indexOf("P");
int timeStart = input.indexOf("T");
Period p = Period.parse(input.substring(periodStart, timeStart));
Duration d = Duration.parse("P" + input.substring(timeStart, input.length()));
return new PeriodAndDuration(p, d);
}
@Override
public String toString() {
return p.toString() + d.toString();
}
}
最后
以上就是雪白百褶裙为你收集整理的java date iso,在Java 8中按时间段分析ISO日期的全部内容,希望文章能够帮你解决java date iso,在Java 8中按时间段分析ISO日期所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复