在我的Android应用中,我正在显示一个List<Object>
,其中包含字符串, int 和时间戳值,以及我不知道时间戳是哪个项目。
现在看起来像这样:Timestamp(seconds = 1556208432,nanoseconds = 754000000)
我想将其解析为可读的Date格式。
这是我尝试的代码:
TextView t2 = view.findViewById(android.R.id.text2);
String tS2 = String.valueOf(values.get(position));
if(tS2.contains("Timestamp(seconds=")) {
long ts = Timestamp.parse(tS2);
Date date = new Date(ts);
Log.d(TAG, "date: "+date);
} else {
t2.setText(tS2);
}
并使用SimpleDateFormat对其进行解析,如下所示:
String myFormat = "yyyy MMM dd";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.ENGLISH);
t2.setText(sdf.format(something));
我收到此错误:
java.lang.IllegalArgumentException 在java.util.Date.parse
EDIT1:
到达日期部分时死于下面的错误。
Object time = values.get(position);
com.google.firebase.Timestamp ts = (com.google.firebase.Timestamp) time;
String str = ts.toString();
Date date = new Date(Long.parseLong(str));
java.lang.NumberFormatException:对于输入字符串:“ Timestamp(seconds = 1556208432,nanoseconds = 754000000)”
答案 0 :(得分:1)
您要将timestamp
转换为string
,这将不将其持有的值转换为字符串,而是描述对象本身。
要获取Firebase时间戳的日期,只需在其上调用toDate()
。
有关更多信息,check this out