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