在REDIS中存储Java Date对象

3

我需要将一个Java Date对象存储在Redis中。我正在使用Jedis作为我的Redis客户端。如何在Redis中存储Date对象并使用Java检索它?我看到的所有内容都使用String和Integer值。然而,我对这个世界的理解还不够,无法使用Date对象进行操作。


你能将日期转换为字符串并再次转换回来吗? - Peter Lawrey
2个回答

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()));

希望这可以帮到你。

我正在使用Spring Redis Data,并将我的实体映射为java.util.Date,但是Redis存储库本身会将其转换为javax.sql.Date,不知道为什么! - user1115139

-1
你需要找到一种序列化数据并稍后解析的方法。Redis仅存储字符串,并且Jedis不提供序列化程序。 此对话 提供了有关您的用例的更多信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接