/**
* 返回指定时区日期字符串
*
* @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;
}
}