专栏首页码匠的流水账使用prettyTime格式化时间

使用prettyTime格式化时间

社交网站经常会显示几分钟前,几个小时前之类的时间,java里头有个prettyTime的类库可以用来做这样的转换,这里介绍一下。

maven

    <dependency>
            <groupId>org.ocpsoft.prettytime</groupId>
            <artifactId>prettytime</artifactId>
            <version>4.0.1.Final</version>
        </dependency>

设置locale

Locale locale = Locale.CHINESE;
Locale.setDefault(Locale.CHINESE);

格式化

PrettyTime t = new PrettyTime(new Date(0));
System.out.println(t.format(new Date(1000 * 60 * 12)));

输出

12 分钟 后

源码解析

TimeFormat

public interface TimeFormat {
    String format(Duration var1);

    String formatUnrounded(Duration var1);

    String decorate(Duration var1, String var2);

    String decorateUnrounded(Duration var1, String var2);
}

这里有个decorate方法,去包装格式化信息,比如org/ocpsoft/prettytime/format/SimpleTimeFormat的实现

public String decorate(Duration duration, String time) {
        StringBuilder result = new StringBuilder();
        if(duration.isInPast()) {
            result.append(this.pastPrefix).append(" ").append(time).append(" ").append(this.pastSuffix);
        } else {
            result.append(this.futurePrefix).append(" ").append(time).append(" ").append(this.futureSuffix);
        }

        return result.toString().replaceAll("\\s+", " ").trim();
    }

本文分享自微信公众号 - 码匠的流水账(geek_luandun)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-08-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • docker运行storm及wordcount实例

    本文简单介绍下怎么使用docker运行storm以及在springboot中使用storm。

    codecraft
  • 聊聊nacos client的PushReceiver

    nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/naming/core/PushReceiv...

    codecraft
  • 聊聊nacos client的PushReceiver

    nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/naming/core/PushReceiv...

    codecraft
  • 第57节:Java中流的操作以及编码解码

    编码解码:编码时将信息从一种形式变成为另一种形式,成为编码.编码为coding,逆过程为解码.编码时用代码表示的,解码为Decoding,有了编码就有相关的编码...

    达达前端
  • Android Oss上传图片的使用示例

    1.在官网下载 sdk 包 2.解压后得到 jar 包,目前包括 aliyun-oss-sdk-android-x.x.x.jar、okhttp-3.x.x....

    砸漏
  • SpringMVC请求参数和响应结果全局加密和解密

    前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景。为了模拟真实的交互场景,先定制一下整个交互流程。第三方传输(包括请求和响...

    Throwable
  • commons-configuration2:properties文件写入中文(no escape)

    properties 是java标准支持的配置文件格式,默认编码ISO 8859-1,unicode字符会被转义(Unicode escapes) 参见 ht...

    用户1148648
  • Java微信公众平台开发(七)--多媒体消息回复之图片回复

    之前我们在做消息回复的时候我们对回复的消息简单做了分类,前面也有讲述如何回复【普通消息类型消息】,这里将讲述多媒体消息的回复方法,【多媒体消息】包含回复图片消息...

    用户2417870
  • 基于Netty和SpringBoot实现一个轻量级RPC框架-Client篇

    前一篇文章相对简略地介绍了RPC服务端的编写,而这篇博文最要介绍服务端(Client)的实现。RPC调用一般是面向契约编程的,而Client的核心功能就是:把契...

    Throwable
  • Android获取QQ和微信的聊天记录,并保存到数据库

    (该方法只适用于监控自己拥有的微信或者QQ ,无法监控或者盗取其他人的聊天记录。本文只写了如何获取聊天记录,服务器落地程序并不复杂,不做赘述。写的仓促,有错别字...

    秦穆之

扫码关注云+社区

领取腾讯云代金券