从长UTC时间戳到JAVA UTC到EST

我正在尝试将UTC的长时间戳转换为东部标准时间并完全丢失。 任何提示都会很棒!

谢谢,R

尝试这个:

Date estTime = new Date(utcTime.getTime() + TimeZone.getTimeZone("EST").getRawOffset()); 

其中utcTime是UTC时间的Date对象(如果你已经有了long值 – 只需使用它)

 final Calendar c = Calendar.getInstance(TimeZone.getTimeZone("EST")); c.setTimeInMillis(longTime); 

其中longTime是自UTC时间以来的纪元以来的毫秒数。 然后,您可以使用Calendar类的方法来获取日期/时间的各种组件。

rd42,你能给我一些更多的背景吗?

你说你有一个“UTC时间戳”。 这是存储在数据库中的吗? 它是一个字符串?

如果您能够提供您正在尝试使用的上下文,我或许可以为您提供更多答案。


好的,为了清楚起见,你所说的是你有一个代表UTC时间戳的长值。

那么在这种情况下,您将要做的是以下内容。

 import java.util.Calendar; import java.util.TimeZone; TimeZone utcTZ= TimeZone.getTimeZone("UTC"); Calendar utcCal= Calendar.getInstance(utcTZ); utcCal.setTimeInMillis(utcAsLongValue); 

现在你的日历对象是UTC。

要显示此信息,您可能希望执行以下操作:

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

这将允许您读入存储为long值的UTC时区的时间戳,并将其转换为Java Calendar或Date对象。

希望能让你到达你需要的地方。