如何使用 Java 中的 Joda 时间库获取 ISO 年的月份开始和结束日期

Ree*_*yay 1 java jodatime

对于特定的月份和年份,我想使用 Java 中的 Joda 时间库获取 ISO 年的月份开始日期和结束日期。例如,我的月份为 3 月,年份为 2014 年,所以我想知道 ISO 年份中的 3 月的开始日期和结束日期。

除了 joda-time 库之外,还有其他方法可以得到同样的东西吗?

Kra*_*ayo 5

也许这可以帮助:

DateTime dt = new DateTime().withYear(2014).withMonthOfYear(3);
DateTime start = dt.withDayOfMonth(1).withTimeAtStartOfDay();
DateTime end = start.plusMonths(1).minusMillis(1);
Run Code Online (Sandbox Code Playgroud)

  • 更好的做法是半开放方法,而不是尝试获得最后一天的最后时刻。对于半开放,定义了一个时间跨度,其中开始是包含的,结束是排除的。因此,一个月的日期时间将从该月第一天的第一时刻到*但不包括*下个月第一天的第一时刻。原因之一是最后一刻可以无限整除为小数秒。此示例使用毫秒分辨率。但该值可能无法在使用微秒或 Java 8 的 java.time 中的纳秒的数据库中匹配。 (2认同)