java - 如何在 Java 中查看时间戳是否超过 X 天前?
问题描述
在我的 Firebase 数据库中,对于每个存在的项目,我都会保存它的创建日期并插入到数据库中。日期使用ServerValue.TIMESTAMP保存,值保存为 Map。如何在 Java 中将保存的值与今天的当前日期进行比较?
我需要知道商品的日期是否超过 14 天。谢谢
解决方案
屏幕截图中的数字表示从纪元开始的毫秒数,您可以使用Instant.ofEpochMilli
. 一旦你有了Instant
,你可以将它转换成其他日期时间类型,例如
import java.time.Instant;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
public class Main {
public static void main(String[] args) {
ZonedDateTime zdt = ZonedDateTime.ofInstant(Instant.ofEpochMilli(1616686018322L), ZoneOffset.UTC);
System.out.println(zdt);
ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC);
if (now.minusDays(14).isAfter(zdt)) {
System.out.println("The item is 14 or more days older");
} else {
System.out.println("The item less than 14 days older");
}
}
}
输出:
2021-03-25T15:26:58.322Z
The item less than 14 days older
请注意,上面显示的比较考虑了所有单位(精度高达纳秒)。但是,如果您只想比较日期(而不是日期和时间),您可以在ZonedDateTime#toLocalDate
.
从Trail: Date Time了解有关现代日期时间 API 的更多信息。
推荐阅读
- swift - 如何在 SwiftUI 中初始化或更新变量的值,例如 UIKit?
- php - 我想知道我是否使用 OO 正确加密了密码
- python - 使用 Flask 返回下载的文件
- c - 尝试释放 char* 和 stuct 时 free() 无效指针
- c# - 如何检查 Json 对象和 Json 数组中的属性是否不区分大小写
- python - 如何使用 ffmeg 对文件夹中的所有视频进行下采样
- r - 在 R 中用 pvalues 绘制多箱线图
- php - mPDF 不创建第二页继续,覆盖第一页
- javascript - 画布中最佳正方形大小的算法
- css - CSS:为什么“隐藏:溢出”会禁用文本下划线?