java 不同时区时间转换_Java中的时区转换小结

时间加减

Date currentDate = new Date(System.currentTimeMillis());

Calendar cal = Calendar.getInstance();

cal.setTime(currentDate);

cal.add(Calendar.DAY_OF_MONTH, -1);//减一天时间

startTime=outputFormat.format(cal.getTime());

开发跨地域的程序时,常需要进行时区转换,一个设计优良的系统,也必须考虑对多时区的支持。JDK提供了很多方便的机制和工具,来帮助我们解决时区转换问题。

解决跨时区问题的关键在于时间的记录形式。若将时间单纯的记录成“2011-05-14 23:30:00”,其中蕴含的信息并不足以进行时区转换,因为无法获知这是中国的23点30,还是美国的23点30,更不用说复杂的夏令时问题了。

我们可以使用一个long类型的变量来记录时间,该变量的值等于从1970年1月1日 00:00:00 GMT到记录时间点以来的毫秒数,其中GMT代表格林威治标准时间,通过这个差值,可以获得记录时间点的格林威治(零时区)时间,进而能方便的转换成全世界各时区的时间。(很多数据库引擎就是如此处理时间类型数据)

在Java中,有两个常用方法来获取以上描述的值:

System.currentTimeMillis(),该方法的返回值是从1970年1月1日 00:00:00 GMT至当前时间点以来的毫秒数,通常被用来获取当前系统时间;

java.util.Date的getTime(),该方法的返回值是从1970年1月1日 00:00:00 G

你可能感兴趣的:(java,不同时区时间转换)