Java 獲取數字之前的完整日期時間字符串


最近碰到了一個需求:

根據給出的一個時間字符串,例如:8小時前,3分鍾前,45秒前這樣的字符串,要求來獲取這個時間點所對應的完整日期時間字符串。


以下是實現的效果:


代碼:

[java] view plain copy
  1. /** 
  2.      * 獲取當前字符串所對應的完整日期表達形式的字符串 
  3.      *  
  4.      * @param timeStr 
  5.      * @return 
  6.      */  
  7.     public static Object getExchangedReleaseTime(String timeStr) {  
  8.         if (timeStr.contains("時")) {  
  9.             return getTimeByHour(-returnNumFromStr(timeStr));  
  10.         } else if (timeStr.contains("分")) {  
  11.             return getTimeByMinute(-returnNumFromStr(timeStr));  
  12.         } else if (timeStr.contains("秒")) {  
  13.             return getTimeBySecond(-returnNumFromStr(timeStr));  
  14.         } else {  
  15.             return timeStr;  
  16.         }  
  17.     }  
  18.   
  19.     /** 
  20.      * 從含有數字的字符串中解析出Integer類型的數字 
  21.      *  
  22.      * @param str 
  23.      * @return 
  24.      */  
  25.     public static int returnNumFromStr(String str) {  
  26.         String regEx = "[^0-9]";  
  27.         Pattern p = Pattern.compile(regEx);  
  28.         Matcher m = p.matcher(str);  
  29.         String tempStr = m.replaceAll("").trim();  
  30.         return Integer.valueOf(tempStr).intValue();  
  31.     }  
  32.   
  33.     /** 
  34.      * 獲取當前時間之前或之后幾小時 hour 
  35.      *  
  36.      * @param hour 
  37.      * @return 
  38.      */  
  39.     public static String getTimeByHour(int hour) {  
  40.         Calendar calendar = Calendar.getInstance();  
  41.         calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY)  
  42.                 + hour);  
  43.         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar  
  44.                 .getTime());  
  45.     }  
  46.   
  47.     /** 
  48.      * 獲取當前時間之前或之后幾分鍾 minute 
  49.      *  
  50.      * @param minute 
  51.      * @return 
  52.      */  
  53.     public static String getTimeByMinute(int minute) {  
  54.         Calendar calendar = Calendar.getInstance();  
  55.         calendar.add(Calendar.MINUTE, minute);  
  56.         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar  
  57.                 .getTime());  
  58.     }  
  59.   
  60.     /** 
  61.      * 獲取當前時間之前或之后幾秒鍾 second 
  62.      *  
  63.      * @param second 
  64.      * @return 
  65.      */  
  66.     public static String getTimeBySecond(int second) {  
  67.         Calendar calendar = Calendar.getInstance();  
  68.         calendar.add(Calendar.SECOND, second);  
  69.         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar  
  70.                 .getTime());  
  71.     }  

 

所以要使用的話直接調用getExchangedReleaseTime這個方法即可——>通過解析含有“時分秒”的字符串進行組合顯示要求的日期時間字符串。

(當然獲取之后的時間只要把方法中的“-”號去掉即可)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM