这个问题相当复杂,我不知道之前是否曾被问过,因为我不知道如何在搜索框中说出问题.
这是代码:
public class SomeClass
{
private static final DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
public static String toUTCDateString(Date date)
{
df.setTimeZone(java.util.TimeZone.getTimeZone("UTC"));
return df.format(date);
}
/* more static methods */
}
Run Code Online (Sandbox Code Playgroud)
静态成员df将在更多静态方法中重新使用,但我需要先将其时区设置为"UTC".有没有办法只召唤.setTimeZone("UTC")一次?或者我必须调用.setTimeZone("UTC")每个静态方法?
使用静态初始化块
静态初始化块是用大括号{}括起来的常规代码块,前面是static关键字.这是一个例子:
static {
// whatever code is needed for initialization goes here
}
Run Code Online (Sandbox Code Playgroud)
一个类可以有任意数量的静态初始化块,它们可以出现在类体中的任何位置.运行时系统保证按照它们在源代码中出现的顺序调用静态初始化块.
示例代码:
public class SomeClass
{
private static final DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//Static Initialization Blocks
static{
df.setTimeZone(java.util.TimeZone.getTimeZone("UTC"));
}
public static String toUTCDateString(Date date)
{
return df.format(date);
}
/* more static methods */
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |