首页 > Java > java教程 > 如何将Java时间戳转换为不同时区?

如何将Java时间戳转换为不同时区?

DDD
发布: 2024-11-19 10:52:02
原创
259 人浏览过

How to Convert Java Timestamps to Different Time Zones?

将 Java 时间戳转换为不同时区

在 Java 中,默认情况下时间戳最初采用格林威治标准时间 (GMT)。然而,在处理来自不同时区的用户输入时,将时间戳转换为用户的特定时区是必要的。

考虑以下场景:东部标准时间 (EST) 的用户提供时间戳“5/1” /2008 下午 6:12(美国东部时间)”。 Web 服务需要 GMT 格式的时间戳,即“5/1/2008 6:12 PM (GMT)”。

要准确转换不同时区的时间戳,需要自定义转换器。以下是 ConvertToGmt() 的代码:

public static Calendar convertToGmt(Calendar cal) {

    Date date = cal.getTime();
    TimeZone tz = cal.getTimeZone();

    // Milliseconds since epoch GMT
    long msFromEpochGmt = date.getTime();

    // Current offset from GMT at current date
    int offsetFromUTC = tz.getOffset(msFromEpochGmt);

    // Create a GMT calendar, set time, and add offset
    Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
    gmtCal.setTime(date);
    gmtCal.add(Calendar.MILLISECOND, offsetFromUTC);

    return gmtCal;
}
登录后复制

此方法将输入日历转换为 GMT 日历,确保 Web 服务的 GMT 时间戳准确。请注意,此方法当前不处理夏令时更改。

以上是如何将Java时间戳转换为不同时区?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板