因爲項目緣由,本人在作測試的時候發時間都是UTC時間,所以找了找解決方案,發現都是很是複雜,十幾行代碼實現此功能,其中主要都用在計算時間偏移量。我試了一下在calendar的getinstance方法參數修改並不能直接獲取UTC時間,在嘗試過以後終於找到一個簡單的方法,通知data類直接獲取時間戳,而後設置時間戳來達到轉換時區的方法。分享代碼,供你們參考。java
本方法只適用於採用北京時間爲標準時間的地區。編程
/** * 獲取calendar類對象,默認UTC時間 * * @return */ public static Calendar getCalendar() { Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date(getDate().getTime() - 8 * 3600 * 1000)); return calendar; }
在發一下幾個關聯的封裝方法:json
/** * 獲取當前星期數(按年) * * @return */ public static int getWeeksNum() { return getCalendar().get(Calendar.WEEK_OF_YEAR); } /** * 獲取月份 * * @return */ public static int getMonthNum() { return getCalendar().get(Calendar.MONTH) + 1; } /** * 獲取當前是當月的第幾天 * * @return */ public static int getDayNum() { return getCalendar().get(Calendar.DAY_OF_MONTH); } /** * 獲取年份 * * @return */ public static int getYearNum() { return getCalendar().get(Calendar.YEAR); }