我有一个看起来像这样的字符串:"n n n n n n n n n ns ns周期"(请注意,常数可能会也可能不会复数)
我需要将其转换为Joda Period对象或ISO 8601格式的String(可以转换为Period对象).
有没有人有任何代码,或者他们可以指向我这样做的库吗?
更新:如果有人需要这样做,这是工作代码.不幸的是,我必须动态构建PeriodFormatterBuilder,因为字段是可选的.有点难看,但它的确有效.
Update2:修复了注释中指出的错误.
String text = expr1a.getText();
System.out.println(text);
PeriodFormatterBuilder pfb = new PeriodFormatterBuilder().printZeroAlways();
int yearIndex = text.indexOf("YEAR");
int monthIndex = text.indexOf("MONTH");
int weekIndex = text.indexOf("WEEK");
int dayIndex = text.indexOf("DAY");
if (yearIndex > -1) {
pfb = pfb.appendYears().appendSuffix(" YEAR"," YEARS");
}
if (monthIndex > -1) {
if (yearIndex > -1) {
pfb = pfb.appendPrefix(" ").appendMonths().appendSuffix(" MONTH", " MONTHS");
} else {
pfb = pfb.appendMonths().appendSuffix(" MONTH", " MONTHS");
}
}
if (weekIndex > -1) {
if (yearIndex > -1 || monthIndex > -1) {
pfb = pfb.appendPrefix(" ").appendWeeks().appendSuffix(" WEEK", " WEEKS");
} else {
pfb = pfb.appendWeeks().appendSuffix(" WEEK", " WEEKS");
}
}
if (dayIndex > -1) {
if (yearIndex > -1 || monthIndex > -1 || weekIndex > -1) {
pfb = pfb.appendPrefix(" ").appendDays().appendSuffix(" DAY"," DAYS");
} else {
pfb = pfb.appendDays().appendSuffix(" DAY"," DAYS");
}
}
PeriodFormatter pf = pfb.toFormatter();
Period period = Period.parse(text, pf);
return period;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
742 次 |
| 最近记录: |