我需要在Redis中存储Java Date
对象。我正在使用Jedis作为我的Redis客户端。如何在Redis中存储Date对象并使用Java检索它?我看到的一切都使用String和Integer值。但是,我对这个世界的了解不够,只能使用Date
对象。
答案 0 :(得分:2)
如何将Date对象转换为Epoch时间戳并将其转换回Date以及任何日期格式?通过这种方式,您不会遇到格式化错误的问题。
//...convert date to epoch timestamp
Long time = new Date().getTime();
//...serialize it to a json object
job.addProperty("dateTime", time);
//...write it to redis
jedis.hset(KEY, field, job.toString());
//...retrieve the field and convert date with any format
model = gson.fromJson(jedis.hget(KEY, field), ModelClass.class);
//...print the date (suppose that the time field is of type Long)
DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
System.out.println(format.format(model.getTime()));
希望这有帮助。
答案 1 :(得分:-1)
您需要找到一种序列化数据并稍后解析的方法。 Redis只存储字符串,而Jedis不提供序列化程序。 This conversation提供了有关您的用例的更多信息。