java工具包一:日期處理

来源:http://www.cnblogs.com/NiceCui/archive/2017/11/16/7846812.html
-Advertisement-
Play Games

作者:NiceCui 本文謝絕轉載,如需轉載需徵得作者本人同意,謝謝。 本文鏈接:http://www.cnblogs.com/NiceCui/p/7846812.html 郵箱:[email protected] 日期:2017-11-16 平時寫代碼有時會常用到一些處理日期的邏輯,自己寫了一個工 ...


作者:NiceCui

  • 本文謝絕轉載,如需轉載需徵得作者本人同意,謝謝。
  • 本文鏈接:http://www.cnblogs.com/NiceCui/p/7846812.html
  • 郵箱:[email protected]
  • 日期:2017-11-16

平時寫代碼有時會常用到一些處理日期的邏輯,自己寫了一個工具包,方便每次處理

  1 import java.text.ParseException;
  2 
  3 import java.text.SimpleDateFormat;
  4 import java.util.Date;
  5 
  6 import org.junit.Test;
  7 
  8 /**
  9  * 日期處理工具包
 10  * @author NiceCui
 11  * @date 2017-11-14
 12  *
 13  */
 14 public class DateTool {
 15     
 16     /**
 17      * 講字元串格式的日期 轉換成 自定義的 日期格式 返回Date類型
 18      * 
 19      * @param String
 20      *            date
 21      * @param String
 22      *            format
 23      * @return Date
 24      */
 25     public static Date getDate(String date, String format) {
 26         if (date == null)
 27             return null;
 28         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat(format);
 29         try {
 30             return formatdatetime.parse(date);
 31         } catch (ParseException e) {
 32             e.printStackTrace();
 33         }
 34         return null;
 35     }
 36 
 37     /**
 38      * 講Date類型的日期 轉換成 String 字元串形式的
 39      * 
 40      * @param date
 41      * @return String
 42      */
 43     public static String getTimeStr(Date date) {
 44         if (date == null)
 45             return null;
 46         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
 47         return formatdatetime.format(date);
 48     }
 49 
 50     /**
 51      * 比較兩個 Date類型的 日期 是否是一樣的
 52      * 
 53      * @param Date
 54      *            day1
 55      * @param Date
 56      *            day2
 57      * @return boolean
 58      */
 59     public static boolean isSameDay(Date day1, Date day2) {
 60         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
 61         String ds1 = dateFormat.format(day1);
 62         String ds2 = dateFormat.format(day2);
 63         if (ds1.equals(ds2)) {
 64             return true;
 65         } else {
 66             return false;
 67         }
 68     }
 69 
 70     /**
 71      * 返回開始日期 和 結束日期直接間隔的天數 返回的int類型 單位是 天
 72      * 
 73      * @param Date
 74      *            start
 75      * @param Date
 76      *            end
 77      * @return int
 78      */
 79     public static int getDays(Date start, Date end) {
 80         Date normStart = DateTool.getDateBegin(start);
 81         Date normEnd = DateTool.getDateBegin(end);
 82         int days = (int) ((normEnd.getTime() - normStart.getTime()) / (1000L * 24 * 3600));
 83 
 84         return days;
 85     }
 86 
 87     /**
 88      * 獲得一天的第1s
 89      * 
 90      * @param date
 91      * @return
 92      */
 93     public static Date getDateBegin(Date date) {
 94         Date dateBegin = DateTool.getDate(DateTool.getDateStr(date), "yyyy-MM-dd");
 95         return dateBegin;
 96     }
 97     public static String getDateStr(Date date) {
 98         if(date==null) 
 99         return null;
100         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd");
101         return formatdatetime.format(date);
102     }
103     public static String getDateStr(Date date, String format) {
104         if(date==null) return null;
105         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat(format);
106         return formatdatetime.format(date);
107     }
108 
109     /**
110      * 獲得一天的最後1s
111      * 
112      * @param date
113      * @return
114      */
115     public static Date getDateEnd(Date date) {
116         Date endDate = DateTool.getDate(DateTool.getDateStr(new Date()) + " 23:59:59", "yyyy-MM-dd HH:mm:ss");
117         return endDate;
118     }
119 
120     /**
121      * 講字元串形式的日期 返回 固定格式 年月日形式的Date形式的 日期
122      * 
123      * @param String
124      *            datestr
125      * @return Date
126      */
127     public static Date getDateStr(String datestr) {
128         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd");
129         try {
130             return formatdatetime.parse(datestr);
131         } catch (ParseException e) {
132             e.printStackTrace();
133             return null;
134         }
135     }
136 
137     /**
138      * 返回 String 類型的 年
139      * 
140      * @param date
141      * @return
142      */
143     public static String getYearStr(Date date) {
144         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy");
145         return formatdatetime.format(date);
146     }
147 
148     /**
149      * 返回 int 類型 的年
150      * 
151      * @param date
152      * @return
153      */
154     public static int getYear(Date date) {
155         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy");
156         return Integer.parseInt(formatdatetime.format(date));
157     }
158 
159     /**
160      * 返回int類型的月
161      * 
162      * @param date
163      * @return
164      */
165     public static int getMonth(Date date) {
166         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("MM");
167         return Integer.parseInt(formatdatetime.format(date));
168     }
169 
170     /**
171      * "Tue May 17 10:26:26 CST 2011 由date.toString()得到 像這樣的日期如何格式化?": String dstr =
172      * "Tue May 17 10:26:26 CST 2011"; SimpleDateFormat formatter = new
173      * SimpleDateFormat("EEEE MMM dd HH:mm:ss Z yyyy"); Date d =
174      * formatter.parse(dstr);
175      * 
176      * @return
177      */
178     public static Date parseDateStr(String dstr) {
179         Date d = null;
180         SimpleDateFormat formatter = new SimpleDateFormat("EEEE MMM dd HH:mm:ss Z yyyy");
181         try {
182             d = formatter.parse(dstr);
183         } catch (ParseException e) {
184             formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
185             try {
186                 d = formatter.parse(dstr);
187             } catch (Exception e2) {
188                 // TODO: handle exception
189             }
190         }
191         return d;
192     }
193     
194     @Test
195     public void test() {
196 
197         String startTime = "2017-11-16";
198         // Date time = Common.getDate(startTime+" 00:00:00","yyyy-MM-dd HH:mm:ss");
199         // SimpleDateFormat fomat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
200         // System.out.println(fomat.format(time));
201 
202         // Date date = new Date();
203         // Date date1 = new Date();
204         // System.out.println(isSameDay(date,date1));
205 
206         System.out.println(parseDateStr(startTime));
207     }
208 
209 }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 /// <summary> 2 /// 數據表轉換類 3 /// </summary> 4 /// <typeparam name="T"></typeparam> 5 public class DbTableConvertor<T> where T : new() 6 { 7 /// <sum ...
  • 在[Asp.Net Core](https://www.asp.net)中,我們的web application 其實是運行在Kestrel服務上,它是一個基於libuv開源的跨平臺可運行 Asp.Net Core 的web伺服器。 ...
  • 今天做了幾個小小的練習,和大家分享一下. 1.用*列印出等腰三角形,代碼如下: 由於等腰三角形是1,3,5,7....,找規律就好了 2. 編寫一個程式,輸入一個整數,判斷其為幾位數(例如100是三位,-99是兩位) 3.編寫一個通用的人員類(Person),該類具有姓名(Name)、年齡(Age) ...
  • 返回總目錄 十四、Temporary Field(令人迷惑的暫時欄位) 1、某個實例變數僅為某種特定的情況而設 2、某些實例欄位僅為某個函數的複雜演算法少傳參數而設 將這些變數和相關函數提煉到一個獨立的類中。 十五、Message Chains(過度耦合的消息鏈) 如果你看到用戶向一個對象請求另一個對 ...
  • 一般情況下我們將tomcat做成服務時都會指定服務的名稱:service install ywbase 安裝後, 服務名稱是ywbase. 這時候用tomcat7w.exe配置jdk記憶體會出現指定的服務未安裝. 解決的方案: 將tomcat7w.exe 改成 ywbasew.exe 執行就OK了 ...
  • 題目描述: Find the sum of all left leaves in a given binary tree. 例子: 解題思路: 用遞推對二叉樹進行遍歷,判斷是否為末枝的左子葉,然後將所有的末枝的左子葉相加(不要忘了考慮空指針的情況) 代碼: 解題收穫: 對於C語言鏈表的使用還是有些不 ...
  • 1.http://blog.csdn.net/zhangchaoyi1a2b/article/details/77510138 2.use Mavn 3.on the pom.xml <dependencies> <dependency> <groupId>org.apache.logging.lo ...
  • 採集美女模特圖片庫時,需要對標題進行分詞,找了好久,終於找到了一個不錯的分詞庫 分詞系統簡介:PHPAnalysis分詞程式使用居於unicode的詞庫,使用反向匹配模式分詞,理論上相容編碼更廣泛,並且對utf-8編碼尤為方便。 由於PHPAnalysis是無組件的系統,因此速度會比有組件的稍慢,不 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...