java - 如何为类成员使用 .setTimeZone?

标签 java android

专家们, 我想获取给定时区的当前日期时间以供全局使用。

所以, 我创建了一个如下所示的类,但它显示 df.setTimeZone 语句的语法错误。实现这一目标的巧妙方法是什么?更具体地说,我想为类成员而不是局部变量设置时区属性。

我通过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());

}

最佳答案

如果您绝对必须使用static字段执行此操作,则需要将代码放在static初始化程序 block 中:

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

}

关于java - 如何为类成员使用 .setTimeZone?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38407735/

相关文章:

java - 构造函数来替换默认构造函数?

android - SDK 支持印度语,PhoneGap 不支持

java - JSTL 和 Spring : Accessing methods with arguments

java - 我有以下 JSON,如何将其捕捉到 Road Android Google Maps

java - AudioTrack 中的播放结束检测不起作用

java - while 中的多个条件;第二个条件从不适用

Android NetworkInfo.getTypeName() 返回值

android - RxSearchView 切换线程异常。在线等待

javascript - 如何配置 app.json 以接受所有连接类型,例如 HTTP 请求?

android - 不使用默认 FirebaseApp 的 FirebaseInstanceId.getInstance().getToken()