我想创建一个线程,它会每秒在不同区域中写入当前时间。这是我想出的:Java - 不同时区的当前时间
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确实有效。谢谢! –