15 条回复  ·  1673 次点击
iseki 小成 2025-10-31 20:08:17
@ZeroDu Java 的时间库在这个地方行为和 Go 不太一样:For example, 2007-03-31 plus one month would result in the invalid date 2007-04-31. Instead of returning an invalid result, the last valid day of the month, 2007-04-30, is selected instead. 如果写代码时不注意,换一个需求一样可能踩坑
joey9696 小成 2025-10-31 20:22:00
时间边界 可以用 lancet 这个库
mmdsun 小成 2025-10-31 22:48:28
Java 10-31 减去一个月为 09-31, 但是又因为 9 月没有 31 号,就会是 9 月最后一天。如果没记错的话。这样比较合理。
wenrouxiaozhu 初学 2025-10-31 23:08:37
https://docs.python.org/zh-cn/3.14/library/datetime.html#datetime.timedelta python 没有 month🤣
liuliuliuliu 初学 2025-10-31 23:15:27
```csharp var date = new DateTime(2025,10,31); var date2 = date.AddMonths(-1); Console.WriteLine(date2); // 2025-9-30 00:00:00 ```
cppc 小成 2025-11-1 00:06:55
func (t Time) AddDate(years int, months int, days int) Time 这个 API 的形态就很烧脑,因为月份和日期都会有一个逻辑边界。应该像别的语言那样,调整年月日设计成三个独立的方法。
12
返回顶部