ISO 8601 持续时间格式。
ISO 8601 中定义了一个时间间隔,
格式如下:
ISO 8601持续时间格式如下:
P(n)Y(n)M(n)DT(n)H(n)M(n)S
其中:
(n)为时间值| 符号 | 含义 |
|---|---|
| Y | 年 |
| M | 月 |
| D | 日 |
| W | 星期 |
| H | 时 |
| M | 分 |
| S | 秒 |
P3M
上面的时间表示的是时间间隔为 3 个月。
通常我们在 Java 项目中可以用来计算 2 个时间的不同。
例如我们当前有一个需求为,我们需要对数据进行处理,但是数据处理时间为当前的时间减去 3 个月的这个时间间隔。
在 API 中,我们可以直接定义数字 3 ,但是我们觉得这样不够标准化,所以我们就可以在 API 中传入参数 P3M,然后在后端进行计算就可以了。
例如我们使用下面的代码:
- Period p = Period.parse("P3M");
- LocalDate currentDate = LocalDate.now();
- log.debug("{}", currentDate.minus(p).toString());
程序将会输出当前的日期减去 3 个月。

尽量使用标准的表示吧,系统的处理更加方便。
https://www.ossez.com/t/iso-8601/14201