我有一个图像模型
@Entity
public class Image {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private Long id;
@Column(name = "CAPTION")
private String caption;
@Column(name = "IMAGE_PATH")
private String imagePath;
@Column(name = "IMAGE_NAME")
private String imageName;
@Column(name = "NUMBER_OF_VIEW")
private Integer numberOfView;
@Column(name = "PUBLISH_TIME")
private Date publishDate;
当用户上传图像时,他选择了一个日期时间,图像模型以releaseDate日期保存,格式为“yyyy-MM-dd HH :: mm”格式。现在我有一个调度程序
@Scheduled(cron = "*/5 * * * * ?")
public void sendNotification() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm");
Date currentDate = new Date();
List<ImageInfo> listImageInfo = imageInfoDao.getImageOfParticularDate(currentDate);
if (listImageInfo.size() > 0) {
List<User> listUser = userDao.getAppUser(ACTIVE);
for (ImageInfo imageInfo : listImageInfo) {
for (User user : listUser) {
pushNotification(user.getRegId(), pushGroupNumNotification(imageInfo.getGroupNum()));
}
}
}
}
每5秒重复检查一次系统时间是否等于上传的图像发布时间。我可以检查这种相等性。我正在使用Date。我应该使用Datetime ??
答案 0 :(得分:1)
java.util.Date.equals()
自格林威治标准时间1970年1月1日00:00:00起将compare dates based on milliseconds过去。
鉴于您要按分钟粒度初始化它们并根据分钟进行比较,此方法就足够了,因为所有其他更精细的时间单位将设置为默认值(秒,毫秒等),因此匹配。
确保使用正确的格式化程序。在您的问题中,您首先将写入数据库的格式称为“yyyy-MM-dd HH :: mm”,但在您的代码中使用的是“yyyy / MM / dd HH:mm”。