1

我正在使用 java 在 mongodb 集合中插入当前日期。

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

BasicDBObject doc = new BasicDBObject("date",new Date()); coll.插入(文档);

它在 GMT 中保存日期,而不是在我当地的时区。但是当我使用命令通过 shell 插入时: db.test.insert({date:Date()}); 它占用了我当地的时区。

有没有办法使用java根据本地时区格式插入日期,或者在检索时将日期转换为本地时区。

感谢和问候

4

1 回答 1

1

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

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

于 2013-09-11T14:24:51.733 回答