我在数据库中存储了日期, 首先获取当前日期然后将其转换为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号码。
任何建议...... 不同的解决方案也是可以接受的。
答案 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格式获取日期。并以毫秒时间传递数据库中的数据。 希望它对你有用。