java.util.Date()!=系统机器日期时间

时间:2012-10-22 10:08:04

标签: java datetime

我使用java.util.Date()来获取插入数据库的时间戳。 当我查看结果时,数据库中的时间戳与系统机器时间不同。

  • java.util.Date()时间: 22/10/2012 10:00:07 AM
  • 系统机器时间: 22/10/2012 5:50:34 PM

我使用MongoDB,这里是我的代码

Mongo mongo = new Mongo(DBConstants.DATABASE_HOST,  Integer.parseInt(DBConstants.DATABASE_PORT));
DB db = mongo.getDB("library");
DBCollection books = db.getCollection("books");
BasicDBObject book = new BasicDBObject();
book.put("name", "Understanding JAVA");
book.put("pages", 100);
book.put("amount",10);
book.put("timestamp", new java.util.Date());
books.insert(book);

谁可以向我解释这个?

3 个答案:

答案 0 :(得分:1)

来自java.util.Date is using TimeZone?

java.util.Date与时区无关。在javadoc中说得很对 你想要一个特定时区的东西吗?那是java.util.Calendar

答案 1 :(得分:0)

可能会发生这种情况,因为java.util.Date与时区无关。

答案 2 :(得分:0)

请确保您的系统机器和数据库使用相同的时区。