从原始String值在SQLiteDatabase中存储Date整数

时间:2014-03-24 20:06:35

标签: java android android-sqlite

我正在使用ExtendedCalendarView库来存储有关要加载到日历视图中的事件的一些信息。

正如您从文档中看到的那样,列startDate endDate startend的数据类型为INTEGER

现在,我的事件数据从我的客户提供的CSV文件下载并自行更新。所有数据都是String类型,因此一个例子是“26/04/2014”。

如何修改/转换要插入到我的SQLite数据库中的原始String值,以使其被接受为适当的数据类型?请参阅下面的当前转换代码和我得到的错误。

public static int convertDateString(String dateString) throws ParseException {
    dateString = dateString.replace("/", "-");
    DateFormat df = new SimpleDateFormat("dd-MM-yy");
    Date date = df.parse(dateString); //TURN STRING INTO DATE OBJECT

    String s = df.format(date);
    int result = Integer.valueOf(s);
    return result;
}

产生错误:

03-24 19:13:38.028: E/AndroidRuntime(10279): Caused by: java.lang.NumberFormatException: Invalid int: "26.04.14"
03-24 19:13:38.028: E/AndroidRuntime(10279):    at java.lang.Integer.invalidInt(Integer.java:138)
03-24 19:13:38.028: E/AndroidRuntime(10279):    at java.lang.Integer.parse(Integer.java:375)
03-24 19:13:38.028: E/AndroidRuntime(10279):    at java.lang.Integer.parseInt(Integer.java:366)
03-24 19:13:38.028: E/AndroidRuntime(10279):    at java.lang.Integer.parseInt(Integer.java:332)
03-24 19:13:38.028: E/AndroidRuntime(10279):    at java.lang.Integer.valueOf(Integer.java:490)
03-24 19:13:38.028: E/AndroidRuntime(10279):    at uk.ac.aber.dwd.CeredigionTourism.CalendarActivity.convertDateString(CalendarActivity.java:160)

非常感谢所提供的任何帮助。

2 个答案:

答案 0 :(得分:1)

似乎ExtendedCalendarView期望自纪元以来的日期(以毫秒为单位)。 尝试:

return date.getTime();

答案 1 :(得分:0)

您可以使用以下int将日期存储为date.getTime();

使用Date date = new Date(storedTime);

还原