【发布时间】:2011-05-07 16:41:46
【问题描述】:
我正在使用 SAXParser 解析一个 xml 文件,并在处理程序中创建对象,其中一个数据成员是日期。
我的 XML 文件中的日期格式如下:2010-12-28。
我找不到如何将这样的字符串转换为 Date 对象。而且我也不明白如何将它存储在 SQLite 数据库中,因为似乎有很多格式(带有小时/分钟/等的格式)
我需要将它存储在一个对象中,以便计算时间跨度等。
有人可以帮我解决这个问题吗?
【问题讨论】:
我正在使用 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 数据库中,您有两种选择:
Date.getTime() 为您提供自 1970 年以来的毫秒数,您可以将该值存储在数据库中。)这种方式是首选,因为您没有进行如此多(相对昂贵)的转换。您可以对long 时间戳值进行简单的基本操作。还有一些其他选项可以使用 SQLite 的内置日期函数(如 here 所述),但最终如果您想将其拉入 Android/Java 代码并将其作为 Date 对象进行操作不必进行转换。
【讨论】:
text?
text。但是,首选选项是使用 unix 时间戳交易,在这种情况下,您将使用 integer(可以保存 Java long 值)
Date 类对它进行了很多操作,一个是 compareTo,你可以将它与另一个日期进行比较。您可以检查 compareTo 的返回值以确定日期是否已过——例如 if(olderDate.compareDate(newerDate) < 0)