【问题标题】:How to covert UTC time from database to device locale [duplicate]如何将 UTC 时间从数据库转换为设备区域设置 [重复]
【发布时间】:2017-02-09 16:22:31
【问题描述】:

我正在制作一个聊天应用程序,并希望在输入新消息时存储时间并将该时间作为字符串存储到数据库中,我使用此方法

@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);
        }
    }

现在我想将此 UTC 时间转换为设备默认时间,那么我该怎么做

我也使用这种方法,但这会使我的应用程序崩溃,但这种方法会使我的应用程序崩溃

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);
                }

【问题讨论】:

    标签: java android


    【解决方案1】:

    转换为当地时间使用:

    声明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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 1970-01-01
      • 2020-06-06
      • 2014-11-01
      • 2013-07-21
      • 2013-03-23
      • 1970-01-01
      相关资源
      最近更新 更多