在上面的代码中,我想将服务器时区 (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(使用前将#替换为@)