在数据库中保存日期时间并与当前系统时间匹配

时间:2017-03-27 16:33:45

标签: java date spring-mvc scheduler

我有一个图像模型

@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 ??

1 个答案:

答案 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”。