Java 将时间戳转换为UTC时区

Java 将时间戳转换为UTC时区,java,timezone,Java,Timezone,此方法返回当前时间戳,我需要将其转换为UTC时区。将时区设置为您的SimpleDataFormat对象 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);

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

将时区设置为您的
SimpleDataFormat
对象

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为单位,无法转换。问题是如何解析字符串表示。如果时间戳包含时区,则模式“yyyy-MM-dd'T'HH:MM:ss'.0Z'”不正确,因为它不解析时区。如果时区为RFC 822格式,则应为“yyyy-MM-dd'T'HH:MM:ssZ”,如果时区为ISO 8601格式,则使用
X
而不是
Z
。请参阅SimpleDataFormat API

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