GWT的“美好时光”

时间:2012-01-21 09:58:03

标签: gwt

基于这篇文章,Java有一个“漂亮时间”库:

How to calculate "time ago" in Java?

GWT有这样的东西吗?

3 个答案:

答案 0 :(得分:6)

答案 1 :(得分:4)

我不建议你为这项任务加入一些第三方 - 有更简单的方法。

只需计算秒数,分钟数,小时数...... e.t.c.然后格式化结果文本 - 使用Plural Forms - 内置GWT i18n工具来格式化这样的文本 "一秒","两秒",e.t.c。所以所有消息都将被本地化并存储到i18n资源中,没有任何硬编码。

答案 2 :(得分:0)

我为Android java项目编写了这个代码。我用2种方法创建了一个类:

/**
 * Created by mihai on 2/27/17.
 */

import android.util.Log;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.ocpsoft.prettytime.PrettyTime;

public class Ptime {
    static public class PtimeFormatter {
        public static String getPtime(){
        PrettyTime p = new PrettyTime();
        Log.d("demo", "time now: "+new Date());
            //getPtimeFrom("Mon Feb 27 19:17:13 EST 2017");
        return p.format(new Date());
        //prints: “moments from now”

        //System.out.println(p.format(new Date(System.currentTimeMillis() + 1000 * 60 * 10)));
        //prints: “10 minutes from now”
        }

        public static String getPtimeFrom(String t){
            PrettyTime p = new PrettyTime();
            DateFormat formatter = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy");
            try {
                Date date = (Date)formatter.parse(t);
                Log.d("demo", "time from now: "+p.format(date));
                return p.format(date);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            //Log.d("demo", "time now: "+p.format(date));
            return null;
        }

        public static String getPTimeMillis(String t){
            PrettyTime p = new PrettyTime();
            String currMilis = String.valueOf(System.currentTimeMillis());

            DateFormat formatter = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy");
            try {
                Date aTime  = formatter.parse(t);
                Log.d("demo", "time millis: "+aTime.getTime());
                return String.valueOf(Long.parseLong(currMilis) - aTime.getTime());
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return null;
        }
    }
}