2011-05-07 98 views
2

我正在使用SAXParser解析一个xml文件,并在处理程序中创建对象,其中一个数据成员是日期。解析日期并将其存储在SQLite数据库中

我的XML文件上的日期采用以下格式:2010-12-28

虽然我找不到如何将字符串转换为Date对象。我也不知道如何将它存储在SQLite数据库中,因为似乎有很多格式(有小时/分钟/等的格式)

而且我需要它存储在一个对象中,以便我可以计算时间跨度等等

有人可以帮助我吗?

回答

9

您可以使用Java的简单的日期格式,以您的日期格式为Date对象,你可以用来做计算和这样的:

http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

你想要的解析字符串"yyyy'-'MM'-'dd"

由于将其存储到SQLite数据库中,您有几个选项:

  • 将其存储作为一个字符串,并在它出来时将其转换回日期对象
  • (首选)将其存储为unix时间戳(Date.getTime()为您提供自1970年以来的毫秒数,并且可以将该值存储在数据库中。 )这种方式是首选,因为您不必执行很多(相对昂贵的)转换。您可以简单地对long时间戳值进行基本操作。

有一对夫妇使用其他选项的SQLite内置的日期函数(如描述here),但最终,如果你想将它拉入了Android/Java代码和操作它作为一个Date对象你会不得不做一个转换。

+0

什么数据类型应该用于SQLite中的时间戳,简单的'文本'? – networkprofile 2011-05-07 17:36:23

+2

@Sled如果你用第一个选项去使用'text'。然而,首选的选择是使用unix timestamp协议,在这种情况下,您将使用'integer'(它可以保存Java'long'值) – debracey 2011-05-07 17:56:34

+0

好吧,谢谢,我选择了首选项并使用了整数。最后一个问题:是否有任何课程可以帮助您计算日期等?我想做一些事情,比如看日期是否已经过去等。 – networkprofile 2011-05-07 18:46:51

相关问题