【发布时间】:2015-05-05 17:29:39
【问题描述】:
我想创建一个线程,每秒将当前时间写入不同区域。这是我想出的:
class TimeThread extends Thread {
String city;
String belt;
public TimeThread(String city, String belt) {
this.city = city;
this.belt = belt;
}
@Override
public void run() {
for (; ; ) {
String s = Calendar.getInstance(TimeZone.getTimeZone("GMT" + belt)).getTime().toString();
int i = s.indexOf(":");
System.out.println(city + ": " + s.substring(i - 2, i + 6));
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
所有线程显示相同的时间。这段代码有什么问题?
顺便问一下,如何使用UTC标准?
谢谢。
【问题讨论】:
-
您使用
calendar.getTime().toString(),它将始终在您的系统时区打印相同的时间 - 因此没有区别。使用像SimpleDateFormat这样的格式化程序对象并在那里设置时区,然后你会看到不同的本地时间。 -
SimpleDateFormat 确实有效。谢谢!
标签: java time calendar timezone utc