如何使用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()转换为日期?

这是在真实设备上运行应用程序的结果: two muppets


您需要修改存储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()?

下一篇: Getting UTC time with Calendar and Date