gpt4 book ai didi

java - 如何以当前毫秒为单位检查 1 天摘要的数据库记录

转载 作者:行者123 更新时间:2023-12-01 16:34:47 24 4
gpt4 key购买 nike

我正在开发一个调度程序,该调度程序的工作是从表中提取记录,并根据当前毫秒数与 CreatedTS 进行检查,并表示用户有每日摘要或每周摘要。我该怎么办

数据库样本记录

ID Message CreatedTS

1 MSG1 2020-05-22 09:06:38

我的示例 Java 代码

private static final long ONEDAYMILISEC=86400000;
private static final long ONEWEEKMILISEC=604800000

Date dbDate = simpleDateFormatter.parse(eachJSONObject.getString("createdts"));
long dbmillis = dbDate.getTime();
if(ONEDAYMILISEC<=(curmiliseconds-dbmillis) && eachJSONObject.getString("DigestType").equals("Daily") ){
dailydigestsMap.put(eachJSONObject.getString("inviteeemail"), "Present");
}else if(ONEWEEKMILISEC<=(curmiliseconds-dbmillis) && eachJSONObject.getString("DigestType").equals("Weekly") ){
dailydigestsMap.put(eachJSONObject.getString("inviteeemail"), "Present");
}

我要检查的上述数据库记录属于每日摘要或每周摘要

最佳答案

最好使用更现代的 java.time 包中的功能,并且使用正确的日期/时间类而不是毫秒。

以下代码解析日期字符串并检查它是否在最后一天或一周内。

String createTs = "2020-05-23 09:06:38";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime creaTime = LocalDateTime.parse(createTs, formatter);
LocalDateTime now = LocalDateTime.now();

if (now.minusDays(1).isBefore(creaTime)) {
System.out.println("Daily");
} else if (now.minusWeeks(1).isBefore(creaTime)) {
System.out.println("Weekly");
} else {
System.out.println("Neither");
}

我个人认为这种检查方式有点奇怪,但这就是问题中的完成方式。

关于java - 如何以当前毫秒为单位检查 1 天摘要的数据库记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61981707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com