android - 解析日期并将其存储在 SQLite 数据库中

标签 android sqlite date

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

我的 XML 文件中的日期格式如下:2010-12-28

不过,我找不到如何将这样的字符串转换为 Date 对象的方法。而且我也不明白如何将它存储在 SQLite 数据库中,因为似乎有很多格式(带有小时/分钟/等的格式)

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

有人可以帮我解决这个问题吗?

最佳答案

您可以使用 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 对象,您将不得不进行转换。

关于android - 解析日期并将其存储在 SQLite 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5922532/

相关文章:

android.support.v7.widget.GridLayout 无法让它工作

sqlite - JDBC - SQLITE 选择变量

Java 或 Scala 使用 java.time 快速解析具有多种不同格式的日期

javascript - 改变一些字符串的格式

android - 如何使用 Retrofit 解析 JSON 数组?

android - 应用程序之间共享的 Android 目录的路径是什么?

database - SQLite 中的 "if, then, else"

用于获取前一个星期一的 JavaScript

android - 在android中从后台捕获应用程序的返回

Android 2.3.3 spinner 自动排序