Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将此字符串转换为日期?|如何在mongodb中读取/写入日期?_Java_String_Mongodb_Date_Nosql - Fatal编程技术网

Java 如何将此字符串转换为日期?|如何在mongodb中读取/写入日期?

Java 如何将此字符串转换为日期?|如何在mongodb中读取/写入日期?,java,string,mongodb,date,nosql,Java,String,Mongodb,Date,Nosql,假设我有一个类用户。一个用户得到了一个名字,性别,…,出生。当我得到一个userobject时,我可以将它插入数据库中。那很好。只是日期有问题。我正在尝试: String json = "{'name': '" + user.getName() + "', 'born': '" + user.getBorn() + "'}"; DBObject o = (DBObject)JSON.parse(json); myCollection.insert(o); user.getBorn()正在返回

假设我有一个类用户。一个用户得到了一个名字,性别,…,出生。当我得到一个userobject时,我可以将它插入数据库中。那很好。只是日期有问题。我正在尝试:

String json = "{'name': '" + user.getName() + "', 'born': '" + user.getBorn() + "'}";
DBObject o = (DBObject)JSON.parse(json);
myCollection.insert(o); 
user.getBorn()
正在返回一个日期,但在数据库中它是一个字符串。因此,如果我读到它,我会得到类似于
Fri Sep 05 00:00:00 GMT+01:00 1980
的字符串,这不好:)我想要一个约会。所以可能还有更多的选项(?)也许我可以把这个日期字符串转换成日期?或者我可以插入不带字符串的文档?谢谢你的帮助


编辑:好的,雷纳托说我可以使用SimpleDataFormat。另外一个选择呢?如何将其作为日期()放入数据库?

使用将其转换为简单的日期dd-MM-yyyy或其他形式

假设您只想存储用户的出生日期(通常指日、月和年),将其存储为字符串是有意义的(您还可以使用date.getTime()将其转换为long,并使用构造函数将long重新转换为date对象-new date(long),这将为您节省一些字节,但数据库中的信息变得非常不清晰)


使用
BasicDBObjectBuilder
可能更容易,如下所示:

DBObject o = BasicDBObjectBuilder.start()
  .add("name", user.getName())
  .add("born", user.getBorn())
  .get();
myCollection.insert(o);

这将把born值存储为BSON日期。

当您说“在数据库中它是一个字符串”时,为什么?为什么不把它也设为日期呢?这是另一个问题:如何将日期()作为日期()写入数据库;)不知道mongodb中的解决方案。甚至可以用这种json风格将Date()写为Date()吗?你自相矛盾:“当我得到一个userobject时,我可以将它插入数据库。这很好。只是Date有问题。”,所以你知道如何将Date()保存为Date(),但你要将user.getBorn()转换为String(json),然后保存到mongo。您希望mongo做什么,将其保存为日期?每次你传递一个字符串时,你都希望mongo能读懂你的心思并找出它的类型?不是这样的。Sry米兰不明白你真正想要什么^^雷纳托和韦斯·弗里曼确实完美地回答了这个问题。但也谢谢你。
DBObject o = BasicDBObjectBuilder.start()
  .add("name", user.getName())
  .add("born", user.getBorn())
  .get();
myCollection.insert(o);