Java SimpleDateFormat时区解析
我很好奇Java的SimpleDateFormat如何根据它设置的时区决定何时递增/递减传入时间。
假设我有一个日期06/04/2013。 然后我把时区设置为离我很远(我在格林威治标准时间-5)。 假设我使用GMT + 8。
我打电话
SimpleDateFormat df = new SimpleDateFormat( "M/d/yy" );
df.setTimeZone( TimeZone.getTimeZone( "GMT+8" ) );
df.parse( endDate ) // this returns 06/**03**/2013 //endDate is just a String
它返回06/03/2013。 它为什么减少它?
编辑:基本上我问什么是Java的参考点,如果我将它设置为GMT + 8,我将日期敲回6/3。 有一些逻辑说,嘿,我不在这个当前的时区,所以让我们改变它。 但是由于我传递了一个字符串,我没有看到它可能在哪里。
我假设默认情况下,如果我不在字符串中提供时区,它将默认为GMT。
你在GMT-5,你正在分析一个代表GMT + 8时区的时刻的字符串。
所以, 06/04/2013
的日期实际上是06/04/2013 00:00 GMT+8
。 要在格林威治标准时间获得日期,您必须减去8小时: 06/03/2013 16:00 GMT
。 为了得到格林威治标准时间-5的日期,你必须再减去5小时: 06/03/2013 11:00 GMT-5
。
所有这些字符串都是同一时刻的不同表示。
链接地址: http://www.djcxy.com/p/18601.html