【问题标题】:Java convert timestamp object to date formatJava将时间戳对象转换为日期格式
【发布时间】:2019-04-25 16:24:28
【问题描述】:

在我的 Android 应用中,我显示了一个 List<Object>,它包含 StringintTimestamp 值,但我没有'不知道哪个项目是时间戳。
现在看起来像这样: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 更新了我的问题

标签: java android timestamp


【解决方案1】:

您正在将timestamp 转换为string,这不会将其保存的值转换为字符串,而是描述对象本身

要获取 Firebase 时间戳的日期,只需调用 toDate() 即可。

欲了解更多信息check this out

【讨论】:

    猜你喜欢
    • 2016-11-26
    • 2019-02-25
    • 1970-01-01
    • 2017-04-18
    • 2015-08-19
    • 2020-02-23
    • 1970-01-01
    • 2019-05-10
    相关资源
    最近更新 更多