如何根据本地

时间:2018-03-11 15:57:03

标签: android localization google-cloud-firestore datetime-format

我无法理解这一点,并想知道如何根据设备FieldValue.serverTimestamp()显示Firestore local formatet个人。

Firestore timestamp看起来像这样

  

星期六3月10日19:42:32 GMT + 01:00 2018

try {
      SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS", Locale.getDefault());
        Date parsedDate = dateFormat.parse("Sat Mar 10 19:42:32 GMT+01:00 2018");
        txtCreationDate.setText(new Date(parsedDate.getTime()).toString());
     } catch (ParseException e) {
        txtCreationDate.setText("time error");
     }

如果一个用户i USA创建了日期时间对象,那么如果意大利的另一个用户查看它,那么创建时间必须调整到他的时钟

我已经阅读了很多关于此的页面,但是dateFormat解析器只给我错误 请建议

2 个答案:

答案 0 :(得分:1)

我通常只使用Date和setTimezine。我的模型中的timestamp变量是长变量,我使用这样的代码将服务器时间转换为本地时间。

    DateFormat formatter = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
    formatter.setTimeZone(TimeZone.getTimeZone("STRING FOR TIMEZONE"));
    String localizedToday = formatter.format(YOURDATEOBJECT);

答案 1 :(得分:0)

假设您有一个名为MyClass且具有Date字段和公共设置者和获取者的模型类,要获取日期,请使用以下代码:

Date date = yourClass.getDate();
if (date != null) {
    DateFormat dateFormat = SimpleDateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.getDefault());
    String creationDate = dateFormat.format(date);
    Log.d("TAG", creationDate);
}