0

我以支持的格式 (yyyy-mm-dd) 在 sqlite 数据库中插入日期。现在我希望用户在查询时根据国家/地区显示日期格式(意大利 dd-mm-yyyy,美国 yyyy-mm-dd 等......)

我如何能?谢谢

4

3 回答 3

5

SQLite 没有专用的日期和时间数据类型。如果您插入“01-01-2013”​​之类的内容,它将以字符串形式存储,这会使比较、排序和查询变得困难且缓慢,因为您需要使用 SQLite 日期函数对其进行转换。

您应该改为存储 UNIX 时间戳。这要求日期列的类型为 INTEGER。时间戳可以快速处理、排序和选择,例如,您可以使用 Java 的Calendar 和 DateFormat类以您希望的任何日期格式表示它们。您可以通过工厂方法为用户的默认语言环境检索适当的格式。

除此之外,还有 Android 的专用DateUtils类,它提供了各种功能,用于在用户的语言环境中创建日期时间和时间范围字符串。

于 2013-10-04T15:56:33.730 回答
2

您还可以使用 SQLite 日期和时间格式化程序,例如:

SELECT strftime( '%d-%m-%Y', birthday) as birthday FROM people
于 2014-04-12T11:23:48.717 回答
1

试试下面的代码,

String date = "2013-11-15"; // Retrived date in your specified format from sqlite
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date res = null;
    try {
        d = (Date)sdf.parse(date);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    Calendar c = Calendar.getInstance();
    c.setTime(d);

    String day = c.get(Calendar.DAY_OF_MONTH);
    String month = c.get(Calendar.MONTH);
    String year = c.get(Calendar.YEAR); 
//You can use these day, month and year string values to view in any format

希望这会帮助你。谢谢你。

于 2013-11-28T09:44:57.267 回答