時間日期格式化----鏈式呼叫
阿新 • • 發佈:2018-12-26
在java程式碼的編寫中規範程式碼很重要,有的人寫程式碼比較隨意,天馬行空,想到什麼就寫什麼,往往是一個大的邏輯下來就寫一個方法,亦或是寫少許幾個方法,這樣一來,為實現一些簡單的功能,不得不在一個方法中寫上幾十行甚至是幾百行,這樣,不僅僅程式碼邏輯不清晰還容易出錯,即便是出現bug往往解決起來也非常的頭疼,因為解決bug的前提是先理清業務邏輯,然後才能改bug,但是有的專案本身業務邏輯就不是很清晰,我指的是寫在紙上的,所以這樣很容易就使得專案本身變成了一個坑,有時候貌似很穩定,但是誰動誰死.
在IT業的那些大牛看來,寫程式碼不僅僅是要實現功能,而且更重要的是在程式碼邏輯嚴謹的情況下提高程式碼的複用度,而為了使邏輯嚴謹,不容易出錯,最簡單有效的方法就是縮短程式碼的行數,一個方法往往只寫兩三行,通過實現程式碼的簡潔進而實現程式碼的嚴謹,這樣一來不可避免的會增加方法的數量,而通過提高程式碼的複用度正好可以縮小程式碼的寫作量.
通過這種方法,我們不僅僅可以使得程式碼更加簡潔,邏輯更加嚴謹,而且能夠有效的提高程式設計效率,整個專案下來,所編寫的程式碼反而倒更加的小巧.
示例程式碼如下:
package net.sahv.yrsy.util.service; public interface DateService { /** * @param timeZoneId * 初始化當前時間--使用者可以自定義時區 * @return DateService */ DateService getTimeZone(String timeZoneId); /** * 初始化當前時區,預設是GMT時區 * @return DateService */ DateService getTimeZone(); /** * 初始化當前時間,預設是2017-02-28格式 * @return DateService */ DateService getCurrentDate(); /** * @param formatString * 初始化當前時間--使用者可以自定義時區 * @return DateService */ DateService getCurrentDate(String formatString); /** * 將日期字串分割成字串陣列 * @return DateService */ DateService changeTODateArray(); /** * 獲取當前的日期字串 * @return 返回String型別的資料 */ String getDateString(); /** * 獲取拆分的日期陣列 * @return String[] */ String[] getDateArray(); } package net.sahv.yrsy.util.service.serviceImpl; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; import net.sahv.yrsy.util.service.DateService; public class DateServiceImpl implements DateService{ private Calendar calendar=null; private String dateString=null; private String[] dateArray=null; /** * 初始化當前時間--使用者可以自定義時區 */ @Override public DateService getTimeZone(String timeZoneId) { TimeZone zone=TimeZone.getTimeZone(timeZoneId); this.calendar=Calendar.getInstance(zone); return this; } /** * 初始化當前時區 */ @Override public DateService getTimeZone() { if(calendar==null){ this.calendar=Calendar.getInstance(); } return this; } /** * 獲取當前時間的字串 */ @Override public DateService getCurrentDate() { //日期格式化 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //獲取當前時間 Date date=calendar.getTime(); //格式化當前時間為字串 this.dateString=sdf.format(date); return this; } /** * 將時間字串格式化成一個整形陣列預設是用"-"來進行分割 */ @Override public DateService getCurrentDate(String formatString) { SimpleDateFormat sdf=new SimpleDateFormat(formatString); //獲取當前時間 Date date=calendar.getTime(); //格式化當前時間為字串 this.dateString=sdf.format(date); return this; } /** * 將日期字串分割成字串陣列 */ @Override public DateService changeTODateArray() { this.dateArray=dateString.split("-"); return this; } /** * 獲取當前的日期字串 */ @Override public String getDateString() { return dateString; } /** * 獲取拆分的日期陣列 */ @Override public String[] getDateArray() { return dateArray; } } package net.sahv.yrsy.test; import net.sahv.yrsy.util.service.DateService; import net.sahv.yrsy.util.service.serviceImpl.DateServiceImpl; /** * 測試時間類 */ public class TestDate { public static void main(String[] args) { DateService dateService=new DateServiceImpl(); DateService currentDate=dateService.getTimeZone().getCurrentDate().changeTODateArray(); String[] dateArray=currentDate.getDateArray(); for(int i=0;i