在Java中解析人类可读的间隔



许多应用程序支持人类可读的间隔,如20d, 1y, 2m1d等

是否有一个既定的最佳实践来解析这些?经验告诉我们,由于我们古怪的日历就是这样,时间分析通常会给粗心的旅行者带来很多陷阱。

java.time

使用java。time类内置于Java 8及以后版本中。它们取代了糟糕的遗留日期时间类。

Period

在这些类中有Period,它表示一段时间,不附加在以年、月、日为单位的时间轴上。

<标题>ISO 8601 h1> 类在解析/生成文本时使用标准的ISO 8601格式:PnYnMnDTnHnMnSP标记是开始,T分隔年、月、日和时、分、秒。
String input = "P2M1D" ;
Period p = Period.parse( input ) ;

如果你有非标准的输入,如20d,你可以做一些简单的字符串操作来符合标准。

String input = "20d" ;
String modified = "P" + input.toUpperCase() ;
Period p = Period.parse( modified ) ;

ThreeTen-Extra

要表示附加到时间轴上的时间跨度,请将ThreeTen-Extra库添加到项目中。使用它的LocalDateRange类来表示一对LocalDate对象,以及方便的比较方法,如containsabuts等。

相关内容

  • 没有找到相关文章

最新更新