Java認證技術詳解Java中UTC的使用。
由於使用Date類型在數據庫搜索大量數據時效率很低,公司采取使用Long型timecode進行搜索: Calendar calendar=Calendar.getInstance(); Long timecode=calendar.getTimeInMillis(); 但是由於不同機器不同系統的時區設置不同,所以同一時間產生的timecode的值也不同,導致搜索不到准確時間的數據的問題,所以采取如下方式進行解決:
//將本地當前時間轉換成UTC國際標准時間的毫秒形式 Date time=new Date(); Long timecode=time.UTC(time.getYear(), time.getMonth(), time.getDate(), time.getHours(), time.getMinutes(), time.getSeconds());
//將UTC國際標准時間的毫秒形式轉換成本地的時間 Calendar calendar=Calendar.getInstance(); int offset=calendar.get(Calendar.ZONE_OFFSET); int dst=calendar.get(Calendar.DST_OFFSET); calendar.setTimeInMillis(timecode); calendar.add(Calendar.MILLISECOND, -(offset+dst)); Date resultDate=calendar.getTime();
以上工作心得,如有不對請大家指正。