Java 从原始字符串值在SQLITE数据库中存储日期整数
我正在使用该库来存储有关要加载到日历视图中的事件的一些信息 从文档中可以看到,有数据类型为“整数”的列Java 从原始字符串值在SQLITE数据库中存储日期整数,java,android,android-sqlite,Java,Android,Android Sqlite,我正在使用该库来存储有关要加载到日历视图中的事件的一些信息 从文档中可以看到,有数据类型为“整数”的列startDateendDatestart和end 现在,我的事件数据是从我的客户提供的CSV文件下载并自行更新的。所有数据类型均为String,因此示例为“2014年4月26日” 如何修改/转换要插入到SQLite数据库中的原始字符串值,以便将其作为适当的数据类型接受?请看下面的当前转换代码和我得到的错误 public static int convertDateString(String d
startDate
endDate
start
和end
现在,我的事件数据是从我的客户提供的CSV文件下载并自行更新的。所有数据类型均为String
,因此示例为“2014年4月26日”
如何修改/转换要插入到SQLite数据库中的原始字符串值,以便将其作为适当的数据类型接受?请看下面的当前转换代码和我得到的错误
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)
非常感谢您提供的任何帮助。看来ExtendedCalendarView希望从纪元开始以毫秒为单位显示日期。
尝试:
您可以使用以下date.getTime()将日期存储为int
代码>
还原为Date-Date=新日期(存储时间)
由于尝试将一个日期(26.04.14)强制转换为int,您得到了NumberFormatException
,您想做什么?SQLite可以以整数或字符串格式存储日期。。。你选择。但是有两点的数字根本不是数字。它不是int,不是float,也不是double。。。
return date.getTime();