在REDIS中存储Java Date对象

时间:2014-08-05 18:33:56

标签: java redis

我需要在Redis中存储Java Date对象。我正在使用Jedis作为我的Redis客户端。如何在Redis中存储Date对象并使用Java检索它?我看到的一切都使用String和Integer值。但是,我对这个世界的了解不够,只能使用Date对象。

2 个答案:

答案 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提供了有关您的用例的更多信息。