Edu*_*ona 1 java android calendar simpledateformat
我正在开发一个使用数据库的 Android 应用程序,每次用户插入新寄存器时,当前数据和时间都保存在数据库中使用
Calendar cal = Calendar.getInstance();
Run Code Online (Sandbox Code Playgroud)
所以,当我从数据库中检索数据时,得到了一个这样的字符串:
java.util.GregorianCalendar[time=1496007575129,areFieldsSet=true,lenient=true,zone=America/Mexico_City,firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2017,MONTH=4,WEEK_OF_YEK_OF_222 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_060SET0=120,ZONE_600SET ]
当我尝试使用 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");
}
}
Run Code Online (Sandbox Code Playgroud)
其他数据在 RecView 中正确显示,日历字符串都不同,因此这些字符串中的日期/小时不相同。所以,问题是:
如何Calendar.toString()使用转换为日期SimpleDateFormat.parse()?
这是在真实设备中运行该应用程序的结果:

您需要根据需要修改存储Calendar、调用getTime()和格式化它的方式。例如,
Calendar cal = Calendar.getInstance();
DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
System.out.println(sdf.format(cal.getTime()));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4328 次 |
| 最近记录: |