Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javaweb应用中的日期转换_Java_Date_Web Applications_Web_Timezone - Fatal编程技术网

javaweb应用中的日期转换

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缩写,但既然您知道时区偏移量,就可以这样做

我正在尝试将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缩写,但既然您知道时区偏移量,就可以这样做

    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();