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
Java 将给定时间转换为GMT_Java_Date_Simpledateformat - Fatal编程技术网

Java 将给定时间转换为GMT

Java 将给定时间转换为GMT,java,date,simpledateformat,Java,Date,Simpledateformat,我曾尝试将给定日期周一2011年7月4日00:00:00 IST转换为GMT,如下所示:2011-07-04 18:10:47 GMT+00:00 2011但它显示3/7/11 6:30 PM 这是我的代码: java.text.SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.text.SimpleDateFormat res_format = new SimpleDateFormat("d

我曾尝试将给定日期
周一2011年7月4日00:00:00 IST
转换为GMT,如下所示:
2011-07-04 18:10:47 GMT+00:00 2011
但它显示
3/7/11 6:30 PM

这是我的代码:

java.text.SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

java.text.SimpleDateFormat res_format = new SimpleDateFormat("dd/mm/yyyy HH:mm");

java.util.Date date1 = format.parse("2011-07-04 00:00:00");

DateFormat gmtFormat = new SimpleDateFormat();

TimeZone gmtTime = TimeZone.getTimeZone("GMT+00");

gmtFormat.setTimeZone(gmtTime);

System.out.println("Current Time: "+date1);

System.out.println("Time:"+gmtFormat.format(date1));
这对我很有用:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.TimeZone;

public class TZ {

    public static void main(String[] args) throws ParseException {
    java.text.SimpleDateFormat sourceFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss ZZZ yyyy");

    java.text.SimpleDateFormat gmtFormat = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss zzzz");

    java.util.Date date1 = sourceFormat.parse("Mon Jul 04 00:00:00 IST 2011");

    TimeZone gmtTime = TimeZone.getTimeZone("GMT+00");

    gmtFormat.setTimeZone(gmtTime);

    System.out.println("Source date: " + date1);

    System.out.println("gmt:" + gmtFormat.format(date1));

    }
}

代码更改最少的快速解决方案是替换:

DateFormat gmtFormat = new SimpleDateFormat();
致:


你的想法是正确的。如果您费心再次查看代码,您就会知道自己做错了什么

你的代码运行良好。但是你看不到你想要什么,因为你(很可能)已经初始化了

java.text.SimpleDateFormat res_format = new SimpleDateFormat("dd/mm/yyyy HH:mm");
对于输出

您可以使用全新的
SimpleDateFormat
,从蓝色开始设置时区和显示

如果你改变

DateFormat gmtFormat = new SimpleDateFormat();

你得到你想要的

(请注意格式的变化。它是
dd/MM/yyyy
,而不是
dd/MM/yyyy

如果您对块进行了逻辑分组,并且没有(几乎)为所有类使用完全限定名,那么您的代码将更易于阅读(对您和其他人来说)

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = format.parse("2011-07-04 00:00:00");

    SimpleDateFormat gmtFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm zz");
    TimeZone gmtTime = TimeZone.getTimeZone("GMT+00");
    gmtFormat.setTimeZone(gmtTime);

    System.out.println("Current Time: " + date);

    System.out.println("Time:" + gmtFormat.format(date));

我希望输出格式如下:7月16日星期六18:10:47 GMT+00:00 2011
java.text.SimpleDateFormat gmtFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm zz");
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = format.parse("2011-07-04 00:00:00");

    SimpleDateFormat gmtFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm zz");
    TimeZone gmtTime = TimeZone.getTimeZone("GMT+00");
    gmtFormat.setTimeZone(gmtTime);

    System.out.println("Current Time: " + date);

    System.out.println("Time:" + gmtFormat.format(date));