/** * 返回指定时区日期字符串 * * @return */ public static String getDateByTimeZone(Date date, String timeZone, String strFormat) { if (ObjectUtils.isEmpty(timeZone)) { timeZone = "Asia/Shanghai"; } DateFormat df = new SimpleDateFormat(strFormat); df.setTimeZone(TimeZone.getTimeZone(timeZone)); return df.format(date); }
/** * 日期重新指定时区(原来的日期不会变化) * * @return */ public static Date dateSetTimeZone(Date dt, String timeZone) { try { if (ObjectUtils.isEmpty(dt)) { return null; } if (ObjectUtils.isEmpty(timeZone)) { timeZone = "Asia/Shanghai"; } String patternDatetime = "yyyy-MM-dd HH:mm:ss"; String strDt = DateUtil.format(dt, patternDatetime); DateFormat df = new SimpleDateFormat(patternDatetime); TimeZone tz = TimeZone.getTimeZone(timeZone); df.setTimeZone(tz); return df.parse(strDt); } catch (Exception e) { return null; } }
/** * 北京时间转化成美东时间(原来的日期会变化) * * @return */ public static Date dateChangeAmericaEastTimeZone(Date date) { try { Date beiJingTime = dateSetTimeZone(date,""); String dateStr = getDateByTimeZone(beiJingTime, "America/New_York", "yyyy-MM-dd HH:mm:ss"); return DateUtil.parse(dateStr); } catch (Exception e) { return null; } }