2012-01-21 24 views

Trả lời

4

tôi sẽ không khuyên bạn nên bao gồm một số bên thứ 3 cho nhiệm vụ này - có cách đơn giản hơn.

Chỉ cần đếm số giây, phút, giờ, ... e.t.c. và sau đó định dạng văn bản kết quả - sử dụng Plural Forms - được xây dựng trong công cụ GWT i18n để định dạng văn bản như "một giây", "hai giây", e.t.c. Vì vậy, tất cả các tin nhắn sẽ được bản địa hóa và lưu trữ vào tài nguyên i18n, không có bất kỳ mã cứng nào.

0

Tôi đã mã hóa điều này cho dự án java Android. Tôi đã tạo một lớp học với 2 phương pháp:

/** 
* 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; 
     } 
    } 
} 
+0

Cách sử dụng: Ptime.PtimeFormatter.getPtimeFrom ("stringDate"); –

+0

Phương thức getPTimeMillis ("stringDate"); có thể được sử dụng để so sánh thứ tự của 2 sự kiện xảy ra tại các thời điểm khác nhau theo thời gian bằng số mili giây. –

Các vấn đề liên quan