如何为类成员使用.setTimeZone?

时间:2016-07-16 04:33:22

标签: java android

专家, 我希望在给定时区内获取当前日期时间以供全局使用。

所以, 我创建了一个类如下,但它显示了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());

}

2 个答案:

答案 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)

请尝试以下可能的语法:

Base

您需要在课程下方导入: https://developer.android.com/reference/java/util/TimeZone.html