按时区转换日期

2023-12-09

在上面的代码中,我想将服务器时区 (GMT-02:00) 的日期转换为我设备中的时区 (GMT-03:00)。 但我总是有相同的服务器日期。我做错了什么?

TimeZone timeZoneServer = TimeZone.getTimeZone(timeZoneServerString); 长时间 = new Long(Long.valueOf(timeInMilis));

        Calendar calendarDateServer =   Calendar.getInstance(timeZoneServer);
        calendarDateServer.setTimeInMillis(time);
        long miliServer = calendarDateServer.getTimeInMillis();

        TimeZone timeZoneMeu = TimeZone.getDefault();
        Calendar meuCalendario =  new GregorianCalendar();
        meuCalendario.setTimeZone(timeZoneMeu);

        meuCalendario.setTimeInMillis(miliServer);  
        Date transformedDate = meuCalendario.getTime();


        return transformedDate; 

我做错了什么?

你假设一个Date有一个开始时区。事实并非如此。 ACalendar确实如此,但是一个Date is just自 Unix 纪元以来的毫秒数。它不了解日历系统或时区。这只是一个时间点。

目前尚不清楚您想对结果做什么 - 但如果是为了显示而格式化它,只需使用SimpleDateFormat并将时区设置为that反而。

我还强烈建议您使用乔达时间而不是内置类型...它是much更明智的API。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按时区转换日期 的相关文章

随机推荐