给定一个JSR-310对象,例如LocalDate
,我如何找到下一个星期三的日期(或其他星期几?)
LocalDate today = LocalDate.now();
LocalDate nextWed = ???
答案取决于您对“下一个星期三”的定义;-)
JSR-310使用TemporalAdjusters类提供了两个选项。
第一个选项是next():
LocalDate input = LocalDate.now();
LocalDate nextWed = input.with(TemporalAdjusters.next(DayOfWeek.WEDNESDAY));
第二个选项是nextOrSame():
LocalDate input = LocalDate.now();
LocalDate nextWed = input.with(TemporalAdjusters.nextOrSame(DayOfWeek.WEDNESDAY));
两者取决于输入日期是星期几。
如果输入日期为2014-01-22(星期三),则:
next()
将于一周后返回2014-01-29nextOrSame()
将返回2014-01-22,与输入内容相同如果输入日期为2014-01-20(星期一),则:
next()
将返回2014-01-22nextOrSame()
将返回2014-01-22即。next()
总是返回一个较晚的日期,而nextOrSame()
如果匹配则将返回输入日期。
请注意,使用静态导入时,两个选项看起来都更好:
LocalDate nextWed1 = input.with(next(WEDNESDAY));
LocalDate nextWed2 = input.with(nextOrSame(WEDNESDAY));
TemporalAdjusters
还包括匹配previous()
和previousOrSame()
方法。
问题内容: 您能否说明一下如何为默认系统时区和给定时区获取正确的纪元时间(以毫秒为单位)。 给定 1.时区:GMT + 3 2.以下代码段: 3.输出: 4. System.currentTimeMillis()的 JavaDoc,它指示返回值将是 当前时间与UTC 1970年1月1日午夜之间的差(以毫秒为单位)。 所以为什么 at 的输出与of的输出相同,尽管提及的文档? at 的输出与有所不同
问题内容: 如果一个月的大写或小写(即不是标题),则DateTimeFormatter无法解析日期。有没有简单的方法可以将日期转换为标题大小写,还是可以使格式化程序更宽松? 版画 问题答案: s是严格的,默认情况下区分大小写。使用和指定以区分大小写。 为了能够解析数字月份(即),您还需要指定。 您也可以更冗长地指定仅月份部分为不区分大小写/宽大: 从理论上讲,这可能会更快,但我不确定是否可以。 P
问题: > 你对Threeten有什么经验?是否存在一些弊端? 与官方的实现相比,该项目的兼容性如何?
本文向大家介绍MySQL中查询某一天, 某一月, 某一年的数据代码详解,包括了MySQL中查询某一天, 某一月, 某一年的数据代码详解的使用技巧和注意事项,需要的朋友参考一下 今天 昨天(包括昨天和今天的数据) 昨天(只包括昨天) 近7天 近30天 本月 上一月 查询本季度数据 查询上季度数据 查询本年数据 查询上年数据 查询当前这周的数据 查询上周的数据 查询上个月的数据 查询当前月份的数据 查
问题内容: 我的问题是:有没有办法像Oracle SQL函数一样在Hive中查找一个月的最后一天?: 谢谢。 问题答案: 您可以使用Nexr提供的UDF。它基于带有yyyy-MM-dd HH:mm:ss模式的日期字符串返回月份的最后一天。 您需要从其Github存储库中提取它并进行构建。他们的Wiki页面包含有关如何在Hive中进行构建和使用的所有信息。
问题内容: 有没有一种方法可以创建JSR-310格式器,该格式器能够以可变的秒分数来解析以下两个日期/时间? 要么 示例代码: 问题答案: 这样可以解决问题: JiriS的答案不正确,因为它使用,而正确的方法是使用(它也处理小数点)。差异可以在第二个系统中看到,其中错误地解析了“2015-05-07T13:20:22.000276”。 在大多数情况下,解析时比直接使用格式化程序更整洁。 使用生成器