-1

我是安卓新手。我在数据库中有一个表,其中日期列为字符串类型,并以这种格式“dmyyyy”存储日期我需要从 sqlite 数据库中检索以这种格式存在的日期并将该值更新到 DatePicker 视图。我如何实现这一点,请帮助我。

例如:“1102012”(2012 年 11 月 1 日)

提前致谢。

4

3 回答 3

2

首先,您为什么首先将它们存储为该格式的字符串?您的格式完全模棱两可-假设您在示例中犯了一个错误,您将如何区分“1 月 11 日”和“11 月 1 日”?两者都是“111”,然后是年份。

据我了解,SQLite 通常使用 ISO-8601 日期和时间表示——这就是它的日期/时间函数所使用的,这也是我期望客户端库公开的。

无论如何,在解析方面,您可以使用Joda Time,它是一个第三方日期/时间 API,比内置和类好得多,也可以使用. 我建议您明确指定(理想情况下,不是用户的语言环境 - 这只是为了存储)时区(同样,您几乎可以肯定使用 UTC 而不是用户的时区)和模式(例如ISO-8601 )。然后用于检索... 您可能希望将其设置为具有相同时区的 a ,以便获得更多有用的信息。DateCalendarSimpleDateFormatLocaleLocale.USyyyy-MM-ddparseDateCalendar

于 2012-11-09T13:22:30.377 回答
0

试试这样

String dateStr = "5/31/2011";
DateFormat df = new SimpleDateFormat("M/dd/yyyy");
Date date = df.parse(dateStr);
于 2012-11-09T13:26:32.980 回答
-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));
于 2012-11-09T13:46:03.903 回答