在java開發過程當中常常會遇到統計某一天或是某一個月的數據,所以經常須要獲取截取數據的兩個時間戳(好比統計今天的數據,則須要獲取一個開始時間爲今天零點以及一個結束時間爲明天零點),而後根據數據相關的時間是否在該時間區間內來判斷是否將其計入統計數據中。java
話很少說,首先咱們先拿上面的例子提及吧。如何獲取今天零點以及明天零點的兩個時間戳。
public Long getToday(){ DateTime now = new DateTime(); return new DateTime(now.getYear(), now.getMonthOfYear(), now.getDayOfMonth(), 0, 0, 0, 0).getMillis(); } public Long getTomorrow(){ DateTime now = new DateTime(); return new DateTime(now.getYear(), now.getMonthOfYear(), now.getDayOfMonth(), 0, 0, 0, 0).plusDays(1).getMillis(); }
上面的方法中用到了DateTime中的plusDays(),同理,你若是須要獲取下 個星期(年,月,時,分,秒,毫秒)前的時間戳,都有一樣的plusYears(int X),plusMonths(int X)等等與之對應,若是要獲取今天以前的就把傳入一個負整數參數便可。工具
然而不少時候咱們須要某個特定時間的時間戳,好比這個月5號14點23分6秒138毫秒的時間戳(這個時間並無特殊的含義,隨便選的)。unix
public Long getTime(){ Long now = new Date().getTime(); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(now); calendar.set(Calendar.DAY_OF_MONTH, 5); calendar.set(Calendar.HOUR, 14); calendar.set(Calendar.MINUTE, 23); calendar.set(Calendar.SECOND, 6); calendar.set(Calendar.MILLISECOND, 138); return calendar.getTimeInMillis(); }
再好比咱們可能須要知道這個星期二的10點10分10秒的時間戳。code
public Long getTime(){ Long now = new Date().getTime(); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(now); calendar.set(Calendar.DAY_OF_WEEK, 2); calendar.set(Calendar.HOUR, 10); calendar.set(Calendar.MINUTE, 10); calendar.set(Calendar.SECOND, 10); return calendar.getTimeInMillis(); }
以上就是我總結的一些獲取時間戳的方法,若是平時須要快速進行時間與時間戳之間的轉換,也能夠在站長工具獲得快速解決:Unix時間戳開發