日期TimeZone在java中的转换?
发布时间:2020-12-15 00:08:24 所属栏目:Java 来源:网络整理
导读:我一直在寻找将格林威治标准时间转换为当地时间的最简单方法.当然,要考虑适当的DST日期并尽可能标准. 我能想出的最直接的代码是: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String inpt = "2011-23-03 16:40:44";Date inptdate
我一直在寻找将格林威治标准时间转换为当地时间的最简单方法.当然,要考虑适当的DST日期并尽可能标准.
我能想出的最直接的代码是: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String inpt = "2011-23-03 16:40:44"; Date inptdate = null; try { inptdate = sdf.parse(inpt); } catch (ParseException e) {e.printStackTrace();} Calendar tgmt = new GregorianCalendar(TimeZone.getTimeZone("GMT")); tgmt.setTime(inptdate); Calendar tmad = new GregorianCalendar(TimeZone.getTimeZone("Europe/Madrid")); tmad.setTime(inptdate); System.out.println("GMT:tt" + sdf.format(tgmt.getTime())); System.out.println("Europe/Madrid:t" + sdf.format(tmad.getTime())); 但我认为我没有得到getTime将返回的正确概念. 解决方法
这里的问题是DateFormat类有一个时区.请尝试此示例:
SimpleDateFormat sdfgmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); sdfgmt.setTimeZone(TimeZone.getTimeZone("GMT")); SimpleDateFormat sdfmad = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); sdfmad.setTimeZone(TimeZone.getTimeZone("Europe/Madrid")); String inpt = "2011-23-03 16:40:44"; Date inptdate = null; try { inptdate = sdfgmt.parse(inpt); } catch (ParseException e) {e.printStackTrace();} System.out.println("GMT:tt" + sdfgmt.format(inptdate)); System.out.println("Europe/Madrid:t" + sdfmad.format(inptdate)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |