如何使用SimpleDateFormat.parse()将Calendar.toString()转换为日期?
我正在开发一个使用数据库的Android应用程序,每当用户插入一个新的寄存器时,当前的数据和时间都保存在数据库中
日历cal = Calendar.getInstance();
所以,当我从数据库中获取数据时,得到了一个像这样的字符串:
java.util.GregorianCalendar中[时间= 1496007575129,areFieldsSet =真,宽大=真,区=美洲/墨西哥城,Firstdayofweek可= 1,minimalDaysInFirstWeek = 1,ERA = 1,YEAR = 2017,MONTH = 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,微差= 129,ZONE_OFFSET = -21600000,DST_OFFSET = 3600000 ]
当我尝试使用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和日历字符串中都显示正确,因此这些字符串中的日期/小时数不同。 所以,问题是:
如何使用SimpleDateFormat.parse()将Calendar.toString()转换为日期?
这是在真实设备上运行应用程序的结果:
您需要修改存储Calendar
的方式,调用getTime()
并根据需要对其进行格式化以开始。 例如,
Calendar cal = Calendar.getInstance();
DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
System.out.println(sdf.format(cal.getTime()));
链接地址: http://www.djcxy.com/p/18701.html
上一篇: How can I Convert Calendar.toString() into date using SimpleDateFormat.parse()?