简体   繁体   English

将时间戳转换为UTC时区

[英]Convert timestamp to UTC 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();
}

This method returns epoch current timestamp, I need to convert this to UTC timezone. 此方法返回epoch当前时间戳,我需要将其转换为UTC时区。

将时区设置为SimpleDateFormat对象。

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

Date is always in UTC and you cannot convert it. 日期始终为UTC,您无法转换它。 The problem is how to parse string representation. 问题是如何解析字符串表示。 If timeStamp contains timezone, then pattern "yyyy-MM-dd'T'HH:mm:ss'.0Z'" is incorrect because it does not parse timezone. 如果timeStamp包含时区,则模式“yyyy-MM-dd'T'HH:mm:ss'.0Z'”不正确,因为它不解析时区。 It should be "yyyy-MM-dd'T'HH:mm:ssZ" if timezone is in RFC 822 format, use X instead of Z if timezone is in ISO 8601. See SimpleDateFormat API 它应该是“yyyy-MM-dd'T'HH:mm:ssZ”如果时区是RFC 822格式,如果时区在ISO 8601中,则使用X代替Z请参阅SimpleDateFormat API

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM