You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为日期时间字符串增加分钟或天数且保持格式不丢失秒位?

问题根因

秒数丢失和时间加算逻辑无关,是ZonedDateTime的toString()方法的内置规则导致的:当时间的秒、毫秒值为0时,该方法会自动省略这两部分的输出。

修复方案

不要直接调用toString()将运算后的时间转为字符串,复用你解析时间时使用的DateTimeFormatter.ISO_OFFSET_DATE_TIME格式化器输出即可,能完全保证和输入格式一致。

修改后的代码如下:

ZonedDateTime result = ZonedDateTime.parse(addTimestamp, DateTimeFormatter.ISO_OFFSET_DATE_TIME);
// 使用指定格式化器输出,保留秒字段
String removeTimestamp = result.plusDays(3).format(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
System.out.println("addTimestamp:    " + addTimestamp);
System.out.println("removeTimestamp: " + removeTimestamp);

修改后输出结果为:

addTimestamp:    2021-05-01T00:00:00+02:00
removeTimestamp: 2021-05-04T00:00:00+02:00

如果后续需要自定义输出格式,也可以通过DateTimeFormatter.ofPattern()方法构造符合你要求的格式化器使用。

内容的提问来源于stack exchange,提问作者Jeff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 16:15:01