2013-07-02 249 views
3
public static long getCurrentEpochTimeStamp(String timeStamp) throws Exception { 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.0Z'"); 
    Date date = sdf.parse(timeStamp); 
    return date.getTime(); 
} 

此方法返回epoch当前时间戳,我需要将其转换为UTC时区。将时间戳转换为UTC时区

回答

4

将时区设置为您的SimpleDateFormat对象。

sdf.setTimeZone(TimeZone.getTimeZone("UTC")); 
+0

比你非常:) –

+0

@SunsetBloom欢迎您:)很高兴我能帮助您。 –

1

日期始终为UTC,您无法对其进行转换。问题是如何解析字符串表示。如果timeStamp包含时区,则模式“yyyy-MM-dd'T'HH:mm:ss'.0Z'”不正确,因为它不解析时区。如果时区是RFC 822格式,应该是“yyyy-MM-dd'T'HH:mm:ssZ”,如果时区在ISO 8601中,则使用X而不是Z。请参阅SimpleDateFormat API