1. 程式人生 > >JAVA 獲取零時區時間

JAVA 獲取零時區時間

/**
 * 得到指定時間的UTC0時間
 * @param beforeDate
 * @param dataFormat 格式為"yyyy-MM-dd HH:mm:ss"
 * @return
 */
public static String getUTCTimeStr(Date beforeDate, String dataFormat) {
   SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dataFormat);
   // 1、取得本地時間:
   Calendar cal = Calendar.getInstance();
   cal.setTime(beforeDate);
   // 2、取得時間偏移量:
   int zoneOffset = cal.get(Calendar.ZONE_OFFSET);
   // 3、取得夏令時差:
   int dstOffset = cal.get(Calendar.DST_OFFSET);
   // 4、從本地時間裡扣除這些差量,即可以取得UTC時間:
   cal.add(Calendar.MILLISECOND, -(zoneOffset + dstOffset));
   Date afterDate = cal.getTime();
   try {
      return simpleDateFormat.format(afterDate);
   } catch (Exception e) {
      e.printStackTrace();
   }
   return null;
}