使用Java在MongoDB中按照本地时区插入/检索日期

时间:2013-09-11 13:44:27

标签: java mongodb date timezone

我正在使用java。

在mongodb集合中插入当前日期

我使用以下代码执行此操作:

BasicDBObject doc = new BasicDBObject(“date”,new Date()); coll.insert(DOC);

它以GMT格式保存日期而不是我当地的时区。 但是当我使用命令通过shell插入时: 的 db.test.insert({日期:日期()}); 这是我当地的时区。

是否有任何方法可以使用java按照本地时区格式插入日期 或者在检索时将日期转换为本地时区的任何方式。

谢谢&此致

1 个答案:

答案 0 :(得分:1)

java Date object是故意与时区无关的,并且应该代表GMT时间(它在内部将其值存储为自1970年1月1日00:00:00 GMT以来的毫秒数)。我真的建议你使用它并在内部处理GMT中的所有日期,因为它可以节省夏令时或在多个时区以分布式方式部署应用程序时遇到的麻烦。

要在用户的时区中将Date对象转换为表示它的字符串,或者使用用户SimpleDateFormat调用setTimeZone方法的TimeZone(静态)方法TimeZone.getDefault()为您提供本地系统的时区。