我试图用TimeZone GMT实例化GregorianCalendar,但每当我调用getTime()方法时,它给我时间在本地TimeZone.这是我的代码:
Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
System.out.println(cal.getTime());
Run Code Online (Sandbox Code Playgroud)
我得到的输出是这样的:
Sat Nov 28 19:55:49 PKT 2009
Run Code Online (Sandbox Code Playgroud)
请帮忙!
我不确定这是否能回答你的问题,但这是在GMT中"现在"获得的一种方式.
import java.text.*
import java.util.*
Calendar cal = new GregorianCalendar();
Date date = cal.getTime();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(formatter.format(date));
Run Code Online (Sandbox Code Playgroud)
有关不同的模式,请参阅SimpleDateFormat上的Javadoc.此外,您可能需要考虑Joda Time,因为它远远优于日期和时间.
问题是不与GregorianCalendar而是Date,正被用于格式化为日期/时间toString为println.
如果你想控制日期格式,你需要实例化你自己DateFormat- 我总是使用,SimpleDateFormat因为我对我希望我的日期看起来很挑剔.
如果您对日期格式的详细信息不感兴趣,您还可以使用其中一种getInstance...工厂方法DateFormat.
你可以明确地setTimeZone对DateFormat(包括SimpleDateFormat,当然).