-1

i'm making a chat app and want to store time when new message typed and store this time to database as string i use this method

@Override
    public void onClick(View v) {
        if (v == mImageButton) {

            Calendar calendar = Calendar.getInstance();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
            simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
            timeStamp = simpleDateFormat.format(calendar.getTime());


            MessageModel messageModel = new MessageModel(mUserId,
                    mUserImageUrl,
                    mEditText_message.getText().toString(),
                    mUsername,
                    timeStamp);
            mFirebaseDatabaseRefrence_messages.push().setValue(messageModel);
            mEditText_message.setText(null);
        }
    }

now i want to convert this UTC time to device default time so how i do that

and i also use this method but this crash my app but this method crash my app

String dateStr = model.getTimeStamp();
                SimpleDateFormat df = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss a");
                df.setTimeZone(TimeZone.getTimeZone("UTC"));
                Date date = null;
                try {
                    date = df.parse(dateStr);
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                df.setTimeZone(TimeZone.getDefault());
                String formattedDate = df.format(date);

                if (model.getTimeStamp() == null) {
                    viewHolder.mTextView_timeStamp.setText("Time");
                } else {
                    viewHolder.mTextView_timeStamp.setText(formattedDate);
                }
Burhan Khanzada
  • 945
  • 9
  • 27

1 Answers1

1

to convert to Local Time use:

Declare Date date;

    Calendar calendar = Calendar.getInstance();
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
    simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
    String timeStamp = simpleDateFormat.format(calendar.getTime());


    try {
        date = simpleDateFormat.parse(timeStamp);
    }catch (Exception e){

    }
    simpleDateFormat.setTimeZone(TimeZone.getDefault());
    String localTime = simpleDateFormat.format(date); //this is the local time
rafsanahmad007
  • 23,683
  • 6
  • 47
  • 62