请帮助我,不要把我推荐到其他任何地方,因为我真的无法获得GMT时间。 答案似乎很简单,但对我来说不起作用。 我不知道网上的答案是错误的,还是我犯了错误?
请查看此代码段和结果:
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
long time = cal.getTimeInMillis();
Date date = new Date(time);
System.out.println(date);
time = System.currentTimeMillis();
date = new Date(time);
System.out.println("--\n" + date);
结果:
2月28日星期五16:07:12 GMT + 03:30 2014年 -
2月28日星期五16:07:12 GMT + 03:30 2014
两者都显示我的当地时间。我甚至直接打印时间,因为我认为这可能是由于Date类,但即使是相同的(只有大约1或2毫秒的差异)。
答案 0 :(得分:2)
在setTimeZone()
上使用SimpleDateFormat
在特定时区打印日期。
DateFormat format = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss z");
Date d = format.parse("28-Feb-2014 13:00:00 PST");
System.out.println(format.format(d));
format.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(format.format(d));
打印:
28-Feb-2014 13:00:00 PST
28-Feb-2014 21:00:00 GMT
答案 1 :(得分:1)
这样做的一种方法是使用SimpleDateFormat
和setTimeZone
方法():
SimpleDateFormat sdf = new SimpleDateFormat( "..." );
sdf.setTimeZone( TimeZone.getTimeZone( "GMT" ) ); // or UTC
System.out.println( sdf.format( date ) );
干杯,
答案 2 :(得分:0)
尝试以下
SimpleDateFormat f = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
f.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(f.format(new Date(System.currentTimeMillis())));