java - 如何创建准确跨越整个月的 2 个 java(最小和最大日期)
问题描述
在 Java 上,我愿意
Date minDate = new Date(year,month,1);
Date maxDate = new Date(year,month,31);
过滤从第 1 天到第 31 天的订单。但是对于某些月份(有 30 天)和更少的 2 月,这最终会找到下个月第 1,2 天甚至第 3 天的订单。
我怎样才能准确地创建一个跨越整个月的minDate
和?maxDate
这些数据值由另一端的 mongodb 读取,但如果可能的话,我想在 java 端执行此操作。
解决方案
java.util.Date
已弃用,并且有充分的理由。在我本地的 Scala REPL 上:
scala> import java.util.Date
import java.util.Date
scala> new Date(120, 9, 1, 0, 0)
^
warning: constructor Date in class Date is deprecated: see corresponding Javadoc
for more information.
res3: java.util.Date = Thu Oct 01 00:00:00 EDT 2020
scala> new Date(120, 9, 31, 23, 59)
^
warning: constructor Date in class Date is deprecated: see corresponding Javadoc
for more information.
res4: java.util.Date = Sat Oct 31 23:59:00 EDT 2020
如果你有 JShell,你应该会看到类似的东西。
好的,所以不是整个Date
类都被弃用了,但几乎所有的构造函数和它的几个 getter 和 setter 都被弃用了。也许java.time.LocalDate
会对你更好。
scala> import java.time.LocalDate
import java.time.LocalDate
scala> LocalDate.of(2020, 10, 1)
res5: java.time.LocalDate = 2020-10-01
scala> LocalDate.of(2020, 10, 31)
res6: java.time.LocalDate = 2020-10-31
看,不需要从年份中减去 1900。轻松,轻松,美丽。
推荐阅读
- mysql - MySQL将一列的默认值设置为另外两个的除法公式
- jquery - 匹配函数条件到媒体查询
- javascript - Angular2 延迟加载语法
- php - 自发布 AJAX 请求
- swift - 无法将数据传递给 viewController
- css - 转换后 Firefox 边框搞砸了
- python - 使用 Lock 创建 Dask 延迟。错误:_thread._local 没有 execution_state
- jquery - Chrome 慢速渲染 ajax 加载表
- python-3.x - seaborn (ndim) 的问题
- solr - Solr:具有多值字段的 mysql 查询的 DIH?