我无法理解这一点,并想知道如何根据设备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解析器只给我错误 请建议
答案 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);
}