java - 时间:下周五怎么过?

标签 java date datetime time jodatime

如何使用 Joda-Time 获得下一个星期五API。

LocalDate今天是 today。在我看来,您必须决定是在本周的星期五之前还是之后。看这个方法:

private LocalDate calcNextFriday(LocalDate d) {
    LocalDate friday = d.dayOfWeek().setCopy(5);
    if (d.isBefore(friday)) {
        return d.dayOfWeek().setCopy(5);
    } else {
        return d.plusWeeks(1).dayOfWeek().setCopy(5);
    }
}

是否可以缩短或使用oneliner?

PS:请不要建议我使用 JDK 日期/时间的东西。 Joda-Time 是一个更好的 API。

Java 8 引入 java.time包 (Tutorial) 更好。

最佳答案

java.time

使用 java.time Java 8 及更高版本 ( Tutorial ) 中内置的框架,您可以使用 TemporalAdjusters获取 nextprevious day-of-week .

private LocalDate calcNextFriday(LocalDate d) {
  return d.with(TemporalAdjusters.next(DayOfWeek.FRIDAY));
}

关于java - 时间:下周五怎么过?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1636038/

相关文章:

Java日期在tomcat运行的不同时区生成

ruby-on-rails - 与 Ruby 中的 Time.now.advance() 相反

java - SSS 在 org.apache.log4j.helpers.ISO8601DateFormat 中代表什么?

java - 是否有任何示例如何使用 Matrix Toolkit Java (MTJ)?

java - 为什么 Spring @Value 与 @Controller 不兼容?

java - 允许用户选择时区

javascript - 如何将php中的strtotime转换为js中的新日期

java - 为什么我会收到此 NullPointer 异常?

c# - 即时窗口 - 转换为日期时间?抛出异常但 (datetime) 没有

sql-server - 如何正确存储 UTC 日期时间并使用本地偏移量?