将时间戳转换为UTC时区

时间:2013-07-02 16:54:37

标签: java timezone

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

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

2 个答案:

答案 0 :(得分:5)

将时区设置为SimpleDateFormat对象。

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

答案 1 :(得分:2)

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