专家, 我希望在给定时区内获取当前日期时间以供全局使用。
所以, 我创建了一个类如下,但它显示了df.setTimeZone语句的语法错误。实现这一目标的巧妙方法是什么?更具体地说,我想为类成员而不是局部变量设置timezone属性。
我通过SimpleDateFormat定义了许多日期格式,如何为所有日期格式指定时区? (.setTimeZone似乎只适用于一种日期格式)谢谢。
public class Global {
static SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
df.setTimeZone(TimeZone.getTimeZone("GIVEN_TIMEZONE"));
static String strDate = df.format(new Date());
}
答案 0 :(得分:2)
如果您绝对必须使用static
字段进行操作,则需要将代码放在static
初始化程序块中:
class Global {
static SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
static {
df.setTimeZone(TimeZone.getTimeZone("GIVEN_TIMEZONE"));
}
static String strDate = df.format(new Date());
}
<强>更新强>
如果你有很多日期要做,使用不同的日期格式和/或时区,最好使用辅助方法。
class Global {
static String strDate = format(new Date(), "dd/MM/yyyy", "GIVEN_TIMEZONE");
private static String format(Date date, String format, String timeZoneID) {
SimpleDateFormat df = new SimpleDateFormat(format);
df.setTimeZone(TimeZone.getTimeZone(timeZoneID));
return df.format(date);
}
}
答案 1 :(得分:0)