【问题标题】:DateUtils getRelativeTimeSpanString always returning same DateDateUtils getRelativeTimeSpanString 总是返回相同的日期
【发布时间】:2016-06-09 18:53:07
【问题描述】:

以下问题:

Log.d(getClass().getName(), String.valueOf(c.getTime()));
//c.getTime() returns a long value

    CharSequence timeAgo = DateUtils.getRelativeTimeSpanString(
            c.getTime(),
            System.currentTimeMillis(),
            DateUtils.SECOND_IN_MILLIS
    );

    holder.timestamp.setText(String.valueOf(timeAgo));

即使我的 logcat 给了我正确的 long 值,也会给我 1970 年 2 月 18 日的日期:

CardAdapter: 1465490137 (when i calculate to date manually it is: Thu, 09 Jun 2016 16:35:37 GMT)
CardAdapter: 1465489775 
CardAdapter: 1465487453 

谁有解决办法?

【问题讨论】:

  • 你会尝试用DateUtils.WEEK_IN_MILLIS而不是DateUtils.SECOND_IN_MILLIS看看它是否有效?

标签: java android datetime formatting long-integer


【解决方案1】:

1465490137 毫秒 => Sun Jan 18 1970 06:34:50 GMT+0730

如果时间相差超过 7 天,DateUtils.getRelativeTimeSpanString() 方法将返回日期字符串。秒、分、小时、天的精确级别默认小于 7 天。

请参考以下链接将毫秒转换为实际日期。 http://www.ruddwire.com/handy-code/date-to-millisecond-calculators/#.V7U5jpN97UI

【讨论】:

    猜你喜欢
    • 2016-11-14
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多