«Хорошее время» для GWT - PullRequest
       1

«Хорошее время» для GWT

8 голосов
/ 21 января 2012

Существует библиотека "Pretty time" для Java, основанная на этом посте:

Как вычислить "время назад" в Java?

Есть ли что-нибудь подобноеэто для GWT?

Ответы [ 3 ]

6 голосов
/ 21 января 2012
4 голосов
/ 21 января 2012

Я не буду рекомендовать вам включать в эту задачу какие-то третьи стороны - есть более простой способ.

Просто посчитайте количество секунд, минут, часов и т. Д., А затем отформатируйте результаттекст - используйте множественные формы - встроенный в GWT инструмент i18n для форматирования такого текста, как «одна секунда», «две секунды» и т. д. Таким образом, все сообщения будут локализованы и сохранены в ресурсах i18n, без какого-либо жесткого кода.

0 голосов
/ 11 апреля 2017

Я кодировал это для Java-проекта Android.Я создал класс с 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;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...