我正在尝试将 UTC 的长时间戳转换为东部标准时间并且完全丢失了。任何提示都会很棒!
时间格式应为:11/4/03 8:14 PM
提前致谢!
TimeZone utcTZ= TimeZone.getTimeZone("UTC");
Calendar utcCal= Calendar.getInstance(utcTZ);
utcCal.setTimeInMillis(utcAsLongValue);
import java.text.SimpleDateFormat;
import java.util.Date;
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss zzz");
sdf.setTimeZone(utcTZ);
Date utcDate= utcCal.getTime();
sdf.formatDate(utcDate);
最佳答案
昨天偶尔写了以下方法可以帮到你:
private Date shiftTimeZone(Date date, TimeZone sourceTimeZone, TimeZone targetTimeZone) {
Calendar sourceCalendar = Calendar.getInstance();
sourceCalendar.setTime(date);
sourceCalendar.setTimeZone(sourceTimeZone);
Calendar targetCalendar = Calendar.getInstance();
for (int field : new int[] {Calendar.YEAR, Calendar.MONTH, Calendar.DAY_OF_MONTH, Calendar.HOUR, Calendar.MINUTE, Calendar.SECOND, Calendar.MILLISECOND}) {
targetCalendar.set(field, sourceCalendar.get(field));
}
targetCalendar.setTimeZone(targetTimeZone);
return targetCalendar.getTime();
}
现在你只需要格式化日期。为此使用 SimpleDateFormat。这是示例:
DateFormat format = new SimpleDateFormat("dd/MM/yy hh:mm a");
format.format(date);
关于java - 在 Java 中将日期从 UTC 转换为 EST?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8559165/