适用于 Android/Java 的“自从/以前的时间”库 [关闭]

2024-04-12

对于 Android/Java 显示时间的好库有什么建议吗?

(例如 10 分钟前、5 天前)


来自 Google I/O 2012 应用程序:

/*
 * Copyright 2012 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

private static final int SECOND_MILLIS = 1000;
private static final int MINUTE_MILLIS = 60 * SECOND_MILLIS;
private static final int HOUR_MILLIS = 60 * MINUTE_MILLIS;
private static final int DAY_MILLIS = 24 * HOUR_MILLIS;


public static String getTimeAgo(long time, Context ctx) {
    if (time < 1000000000000L) {
        // if timestamp given in seconds, convert to millis
        time *= 1000;
    }

    long now = getCurrentTime(ctx);
    if (time > now || time <= 0) {
        return null;
    }

    // TODO: localize
    final long diff = now - time;
    if (diff < MINUTE_MILLIS) {
        return "just now";
    } else if (diff < 2 * MINUTE_MILLIS) {
        return "a minute ago";
    } else if (diff < 50 * MINUTE_MILLIS) {
        return diff / MINUTE_MILLIS + " minutes ago";
    } else if (diff < 90 * MINUTE_MILLIS) {
        return "an hour ago";
    } else if (diff < 24 * HOUR_MILLIS) {
        return diff / HOUR_MILLIS + " hours ago";
    } else if (diff < 48 * HOUR_MILLIS) {
        return "yesterday";
    } else {
        return diff / DAY_MILLIS + " days ago";
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适用于 Android/Java 的“自从/以前的时间”库 [关闭] 的相关文章

随机推荐

  • 使用 Office.Interop.Excel 将文件另存为 PDF/A

    我怎样才能导出Excel电子表格转 PDF A ISO 19005 1 编辑 我要 PDF A 并且not默认导出的是普通旧版 PDF 1 5 我什至还强调了A在我原来的问题中 我已经可以使用以下命令将 Word 和 PowerPoint
  • 如何向react元素添加多个样式属性? [复制]

    这个问题在这里已经有答案了 我将如何向我的 React 元素添加多个样式属性 我的应用程序中的一些组件始终使用相同的样式 但样式略有不同 我正在努力完成一些事情 div div 这些样式位于名为 styles js 的文件中 因此this
  • 如何确定折叠工具栏已折叠?

    我需要知道材料设计库中的 CollapsingToolbar 何时折叠 正如 Marko 所说 这可以使用您自己的 OnOffsetChangedListener 实现来实现 AppBarLayout appBarLayout AppBar
  • 反转/吹出 GROUP BY

    我正在处理按项目编号和计数分组的数据 每条记录都有一个count gt 2需要分解成单独的记录 并在该级别与另一组不同的数据进行比较 数据看起来像这样 它被困在这种格式中 这是客户发送它的唯一方式 OwnerNumber ItemCode
  • 是否可以从手机设置中授予附近 API 权限?

    Question 是否可以从手机设置中授予附近 API 权限 如果是这样 怎么办 答案是否因设备 API 级别而异 如果需要 请继续阅读以获取更多背景信息 一般背景 当面向 API 级别 23 或更高级别的应用安装在运行 API 级别 23
  • 使用 Firestore REST API 和本地模拟器套件创建新文档,返回错误 404:路径参数问题

    作为一名初学者 我刚刚熟悉 Firebase Firestore 并且正在尝试为朋友为其项目编写的一组可调用函数创建集成测试 我正在编写一个测试来使用 Firebase 本地模拟器套件进行自动化测试 现在 我正在尝试使用 Axios 编写一
  • 向 POCO 类添加方法

    我有以下设置 MVC gt 服务 gt 存储库 现在我想让用户能够向文档添加注释 只有与文档关联的用户 作为所有者或审阅者 才能添加注释 因此在我的 NoteService 中 我执行以下操作以确保用户对所选文档具有权限 public No
  • 转换为 int16、int32、int64 - 您如何知道选择哪一个?

    我经常必须转换检索到的值 通常作为字符串 然后将其转换为 int 但在 C Net 中 您必须选择 int16 int32 或 int64 当您不知道检索到的数字有多大时 您如何知道选择哪一个 这里每个提到声明 Int16 保存 ram 的
  • 使用多个数组元素为相同符号生成多行(Pine 脚本)

    基于这个解决方案 https stackoverflow com questions 66370664 how to overcome compiled script code is too long in pine script来自 Bj
  • 汇编程序中的重定位截断错误

    我对汇编语言完全陌生 我尝试编写简单的程序来破译凯撒密码 问题是链接后我收到以下错误 cezar o In function loop text 0xbf relocation truncated to fit R X86 64 8 aga
  • 通过环境变量告诉 ld 在哪里查找目录

    我正在对课程的 C 和 C 文件进行评分 并且此作业使用 GSL 库 由于我的计算机没有 root 权限 因此我的 GSL 库安装在我的主目录中 因此我需要告诉编译器和链接器在哪里可以找到它 当我自己编写程序时 这不是问题 因为我只需向 g
  • 按字典值对字典列表进行排序

    我有以下字典列表 a 23 100 3 103 2 102 36 103 43 123 我如何对其进行排序以获得 a 43 123 3 103 36 103 2 102 23 100 我的意思是 按字典值对列表进行降序排序 除了brandi
  • Puppeteer - 如何使用 page.evaluateHandle

    我在使用最新版本的 puppeteer 时遇到一些问题 我正在使用 puppeteer 版本 0 13 0 我有一个包含此元素的网站 div class header hey there div 我正在尝试运行这段代码 const head
  • 在 boost 几何体中创建实心多边形

    我是增强几何的新手 我已经创建了多边形boost geometry assign points 但我只创建该多边形的外部和内部是空的 所以我尝试测试boost geometry overlaps 两个多边形 A B 且 A 在 B 内部 结
  • Mysql按分钟查询、选择、分组、求和

    我有一个像这样的数据库表 id donation type donation amount time inserted 1 em1 20 2012 12 07 10 01 00 2 em1 50 2012 12 07 10 01 00 3
  • 如何使用 Java 开发 iPhone 应用程序? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道是否可以使用 Java 加 XMLV 来开发 iPhone 应用程序 XMLV 声称可以将基于 Java 的 Android
  • jquery-ajax 多次调用

    我使用以下代码来发出多个 ajax 请求 如下所示 request 1 start 要求1 finish 要求2 start 要求2 finish 这是代码 var startingpoint fireRequest 1 each type
  • 如何将清单信息添加到delphi项目中

    添加最简单的方法是什么
  • 如何在 Haskell 中使用 TypeApplications?

    With XTypeApplications在 GHC 8 0 中 您可以使用显式指定类型 前面的函数参数 它到底指定了什么类型 尤其是当有多个类型时 有介绍吗 如果你看一下函数的类型 elem Foldable t Eq a gt a g
  • 适用于 Android/Java 的“自从/以前的时间”库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 对于 Android Java 显示时间的好库有什么建议吗 例如 10 分钟前 5 天前 来自 Goog