java 获取est时间,在Java中将日期从UTC转换为EST?

I'm trying to convert a long timestamp that is UTC to Eastern Standard Time and am totally lost. Any hints would be great!

Time format should be : 11/4/03 8:14 PM

Thanks in advance!

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);

解决方案

Yesterday occasionally I wrote the following method that can help you:

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();

}

Now you just have to format the date. Use SimpleDateFormat for this. Here is the example:

DateFormat format = new SimpleDateFormat("dd/MM/yy hh:mm a");

format.format(date);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值