0

我已将日期存储在数据库中,首先获取当前日期,然后将其转换为字符串,然后将其存储到数据库中,它工作正常。

然后我想检索数据并将其显示给 ListView,为此我做了:

// get the string value of date

    String dateString = c.getString(c.getColumnIndex(CallHistoryDataBase.colDate));

// format according to system's current format

    java.text.DateFormat dateFormat =  android.text.format.DateFormat.getDateFormat(getApplicationContext());
    textViewDateTime.setText(dateFormat.format(new Date(dateString)));

它工作正常,就像我以“dd/MM/yyyy”格式存储日期,后来我将系统的格式更改为“yyyy/MM/dd” ,在列表中以“yyyy/MM/dd”格式显示。

但有时它会显示2014/04/14日期2012/04/14。我已经检查过,在从数据库存储和检索数据时它很好。

我没有任何线索。没有硬编码,甚至没有 14 个数字。

任何建议......不同的解决方案也是可以接受的。

4

1 回答 1

0
public String getDate(final Context context, final long time) {
        long t = time;
        if (t < MIN_DATE) {
            t *= MILLIS;
        }
        final Calendar base = Calendar.getInstance();
        base.set(Calendar.HOUR_OF_DAY, 0);
        base.set(Calendar.MINUTE, 0);
        base.set(Calendar.SECOND, 0);
        if (t < base.getTimeInMillis()) {
            SimpleDateFormat df1 = new SimpleDateFormat("dd-MMM-yyyy");
            String formattedDate1 = df1.format(t);

            return formattedDate1;
            // return DateFormat.getDateFormat(context).format(t);
        } else {
            return DateFormat.getTimeFormat(context).format(t);
        }
    }

通过使用此方法,您可以获得 dd-mm-yyyy 格式的日期。并将数据库中的数据以毫秒时间传递。希望它对你有用。

于 2012-05-28T12:43:09.163 回答