我是android的新手。我在数据库中有一个表,其日期列为String类型,并以“dmyyyy”格式存储日期我需要从sqlite数据库中检索此格式的日期,并将该值更新为DatePicker视图。我如何实现这一目标,请帮助我。
例如:“1102012”(2012年11月1日)
提前感谢。
答案 0 :(得分:2)
首先,为什么首先将它们以该格式存储为字符串?你有一个完全模糊的格式 - 假设你在你的例子中犯了一个错误,你如何区分" 1月11日"和" 11月1日"?两者都是" 111"然后是一年。
据我了解,SQLite通常使用ISO-8601表示日期和时间 - 这是date/time functions使用的,以及我期望客户端库的用途露出。
无论如何,在解析时,您可以 使用Joda Time这是第三方日期/时间API而多比构建更好-in Date
和Calendar
类,或者您可以使用SimpleDateFormat
。我建议您明确指定Locale
(理想情况下类似Locale.US
,不用户的区域设置 - 这仅用于存储)时区(再次,您应该几乎肯定使用UTC而不是用户的时区)和模式(例如ISO {8601的yyyy-MM-dd
)。然后使用parse
检索Date
...您可能希望将其设置为具有相同时区的Calendar
,以获取更多有用的信息
答案 1 :(得分:0)
试试这个
String dateStr = "5/31/2011";
DateFormat df = new SimpleDateFormat("M/dd/yyyy");
Date date = df.parse(dateStr);
答案 2 :(得分:-1)
日期应采用DDMMYYYY格式。格式DMYYYY是不可解析的。在您的班级中添加以下方法;
private int getDay(String s) {
return Integer.valueOf(s.substring(0, 2));
}
private int getMonth(String s) {
return Integer.valueOf(s.substring(2, 4));
}
private int getYear(String s) {
return Integer.valueOf(s.substring(4));
}
然后像这样设置DatePicker:
String dateString = "01112012";
DatePicker datePicker = (DatePicker) findViewById(R.id.date_picker);
datePicker.updateDate(getYear(dateString), getMonth(dateString), getDay(dateString));