我正在开发一个使用数据库的Android应用程序,每次用户插入新寄存器时,当前数据和时间都会保存在数据库中
Calendar cal = Calendar.getInstance();
所以,当我从数据库检索数据时,得到一个像这样的字符串:
java.util.GregorianCalendar[时间=1496007575129,areFieldsSet=true,lenient=true,zone=America/Mexico_City,firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,年=2017,月=4,WEEK_OF_YEAR=22,WEEK_OF_MONTH= 5、DAY_OF_MONTH=28、DAY_OF_YEAR=148、DAY_OF_WEEK=1、DAY_OF_WEEK_IN_MONTH=4、AM_PM=1、HOUR=4、HOUR_OF_DAY=16、MINUTE=39、SECOND=35、MILLISECOND=129、ZONE_OFFSET=-21600000、DST_OFFSET=360 0000 ]
当我尝试使用 SimpleDateFormat.parse 转换该字符串以将其显示在 RecyclerView 中时,问题就出现了,我总是得到相同的日期:09/04/2017。
这是我的 RecViewAdapter.java 中的代码:
@Override
public void onBindViewHolder(ViewHolder holder,int position){
items.moveToPosition(position);
String s,d,p,f;
s = items.getString(ConsultaTomas.SISTOLICA);
holder.systolica.setText(s);
d = items.getString(ConsultaTomas.DIASTOLICA);
holder.diastolica.setText(d);
p = items.getString(ConsultaTomas.PULSO);
holder.pulso.setText(p);
f = items.getString(ConsultaTomas.FECHA);
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try {
holder.fecha.setText(sdf.format(sdf.parse(f)));
}catch (ParseException e){
Log.d("PARSINGFECHA","Error al parcear fecha");
}
}
其他数据在 RecView 中正确显示,并且日历字符串都不同,因此这些字符串中没有相同的日期/小时。所以,问题是:
我怎样才能转换Calendar.toString()
到日期使用SimpleDateFormat.parse()
?
This is the result running the app in a real device: