将日期格式更改为通过Android中的数据库检索的系统当前格式

时间:2012-05-28 12:11:25

标签: android database string date

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

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

//获取日期的字符串值

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

//根据系统当前的格式来形成

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号码。

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

1 个答案:

答案 0 :(得分: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格式获取日期。并以毫秒时间传递数据库中的数据。 希望它对你有用。