Java将时间戳对象转换为日期格式

时间:2019-04-25 16:24:28

标签: java android timestamp

在我的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)”

1 个答案:

答案 0 :(得分:1)

您要将timestamp转换为string,这将不将其持有的值转换为字符串,而是描述对象本身

要获取Firebase时间戳的日期,只需在其上调用toDate()

有关更多信息,check this out