android如何使用.setTimeZone 的类成员?

标签: Java Android
发布时间: 2016/9/16 21:39:13
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

专家,我想进去给定时区用于全局使用当前的日期时间。

因此,我创建了一个类喜欢下面,但它显示的 df.setTimeZone 语句的语法错误。整洁的方式来实现这一目标是什么?更具体,我想设置时区 property 的类成员而不是一个本地变量。

我定义了许多的日期格式,通过 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());

}

解决方法 1:

如果你绝对必须做到与 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());

}

更新

如果你有很多要那样做,与不同的日期格式的日期和/或 time 区,它可能是更好地使用一个帮助器方法。

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

}
官方微信
官方QQ群
31647020