【发布时间】:2019-04-25 16:24:28
【问题描述】:
在我的 Android 应用中,我显示了一个 List<Object>,它包含 String、int 和 Timestamp 值,但我没有'不知道哪个项目是时间戳。
现在看起来像这样:Timestamp(seconds=1556208432, nanoseconds=754000000)
我想做的是将其解析为可读的日期格式。
这是我尝试过的代码:
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)”
【问题讨论】:
-
哪一行报错?
-
@matanper 更新了我的问题