如何在Android Studio中解析RecyclerView onbindViewHolder中的JSON日期格式?

问题描述 投票:0回答:1

[我到处都看过,但找不到解析Android中RecyclerView onbindViewHolder中的日期时间json对象的任何信息。

如何在回收站视图适配器中进行操作?

我是RecyclerView的Rest Api的新手,所以,如果您知道该解决方案,请提供帮助,谢谢。

public class AdminAdvanceRefundRequestAdapter extends RecyclerView.Adapter<AdminAdvanceRefundRequestAdapter.MyViewHolder> {

        List<AdvanceReturnRequestModel> advanceReturnRequestModels;
        private Context context;
        private RecyclerViewClickListener mListener;

        public AdminAdvanceRefundRequestAdapter(List<AdvanceReturnRequestModel> advanceReturnRequestModels, Context context, RecyclerViewClickListener mListener) {
            this.advanceReturnRequestModels = advanceReturnRequestModels;
            this.context = context;
            this.mListener = mListener;
        }

        @NonNull
        @Override
        public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.model_advance_refund_request, parent, false);
            return new MyViewHolder(view, mListener);
        }

        private String getFormate(String date) throws ParseException {
            Date d = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.ENGLISH).parse(date);
            //Log.d("Date", String.valueOf(d));
            Calendar cal = Calendar.getInstance();
            cal.setTime(d);
            String monthName = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss").format(cal.getTime());
            return monthName;
        }

        @RequiresApi(api = Build.VERSION_CODES.O)
        @Override
        public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position) {

            final AdvanceReturnRequestModel thisModelResponse = advanceReturnRequestModels.get(position);       

            holder.return_date.setText(getFormate(thisModelResponse.getCreatedDate()));

        }

        @Override
        public int getItemCount() {
            return advanceReturnRequestModels.size();
        }

        public class MyViewHolder extends RecyclerView.ViewHolder{

            private RecyclerViewClickListener mListener;
            private TextView return_date;        
            private RelativeLayout row_container_arr;

            public MyViewHolder(@NonNull View itemView, RecyclerViewClickListener listener) {
                super(itemView);

                return_date = itemView.findViewById(R.id.patient_returnDate_ARR_Model);            

                mListener = listener;

            }
        }

        public interface RecyclerViewClickListener {
            void onRowClick(View view, int position);
            void onButtonYesClick(View view, int position);
            void onButtonNoClick(View view, int position);
        }
    }

我的JSON格式是这样的:“ CreatedDate”:“ / Date(1575781410847)/”,和必须像这样显示:08-12-2019 11:03 AM

java android android-recyclerview android-json datetime-parsing
1个回答
0
投票

实际上,您提供的日期字符串不可解析。您必须从CreatedDate获取可格式化的日期字符串。检查以下:

private String getFormate(String date) {
    String formattedDate = null;

    try {
        String[] dates = date.split("\\(|\\)");
        Long timeInMillis = Long.parseLong(dates[1]);

        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(timeInMillis);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy hh:mm a");
        formattedDate = simpleDateFormat.format(calendar.getTime());
    } catch (Exception ex) {
        ex.printStackTrace();
    }

    return formattedDate;
}
© www.soinside.com 2019 - 2024. All rights reserved.