javaweb应用中的日期转换
我正在尝试将AEDT日期转换为dd/MM/yyyy HH:MM:ss z,但它给了我一个例外: 线程“main”java.text.ParseException中出现异常:不可解析日期:“13/03/2014 16:56:46 AEDT” 在java.text.DateFormat.parse(DateFormat.java:337) 请帮我做这个javaweb应用中的日期转换,java,date,web-applications,web,timezone,Java,Date,Web Applications,Web,Timezone,我正在尝试将AEDT日期转换为dd/MM/yyyy HH:MM:ss z,但它给了我一个例外: 线程“main”java.text.ParseException中出现异常:不可解析日期:“13/03/2014 16:56:46 AEDT” 在java.text.DateFormat.parse(DateFormat.java:337) 请帮我做这个 我需要将用户时间转换为UTC时间,以便通过我的web应用程序实现相同的时间…这意味着Java不支持AEDT缩写,但既然您知道时区偏移量,就可以这样做
我需要将用户时间转换为UTC时间,以便通过我的web应用程序实现相同的时间…这意味着Java不支持AEDT缩写,但既然您知道时区偏移量,就可以这样做
String date1 = "13/03/2014 16:56:46 AEDT";
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss z");
sdf.setTimeZone(TimeZone.getTimeZone("GMT+12"));
java.util.Date convertedDate = (java.util.Date) sdf.parse(date1);
SimpleDateFormat outFormatter = new SimpleDateFormat("EE MMM dd yyyy HH:mm:ss z");
outFormatter.setTimeZone(TimeZone.getTimeZone("GMT+12"));
String output = outFormatter.format(convertedDate);
System.out.println("Date in NZ Timezone : " + output);
您的代码似乎是正确的,但AEDT不是有效的通用时区。这就是产生
java.text.ParseException
的原因。相反,您可以:
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT+12"));
java.util.Date convertedDate = (java.util.Date) sdf.parse(date1);
输入:
13/03/2014 16:56:46 GMT+12:00
输出:
新西兰时区日期:Fr Mrz 14 2014 15:56:46 GMT+12:00
它似乎工作正常:)
来自文档的:
三个字母的时区ID
为了与JDK1.1.x兼容,有些
其他三个字母的时区ID(如“PST”、“CTT”、“AST”)为
也支持。但是,不推荐使用它们,因为相同的
缩写通常用于多个时区(例如,“CST”)
可能是美国“中央标准时间”和“中国标准时间”),以及
Java平台只能识别其中一个
String date1 = "13/03/2014 16:56:46 "+TimeZone.getTimeZone("GMT-11").getID();