【发布时间】: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);
}
【问题讨论】: