import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;
import java.util.TimeZone;
class CalendarDemo
{
public static void main(String args[])
{
new MainWindow();
}
}
class MainWindow extends Frame
{
// タイムゾーンの名前のリスト
String time_zone_list[];
// 表示部
Label date_time;
public MainWindow()
{
super("World Time");
// ウインドウリスナの追加
WindowListener listener = new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
};
addWindowListener(listener);
// タイムゾーンリストの取得
time_zone_list = TimeZone.getAvailableIDs();
// 表示部のラベルの定義
date_time = new Label("",Label.CENTER);
date_time.setFont(new Font("",Font.PLAIN,15));
// リストの定義
List list = new List();
for(int i=0;i<time_zone_list.length;i++)
{
list.add(time_zone_list[i]);
}
// リストへのアイテムリスナの追加
ItemListener listener_list = new ItemListener()
{
public void itemStateChanged(ItemEvent e)
{
// 選択されたタイムゾーンを元に、カレンダーオブジェクトの構築
int index = ((Integer)e.getItem()).intValue();
String timezone = time_zone_list[index];
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone(timezone));
// 各値の取得
int month = calendar.get(Calendar.MONTH);
int date = calendar.get(Calendar.DATE);
int week = calendar.get(Calendar.DAY_OF_WEEK);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
// 表示部へセット
String time = month + "/" + date + "(" + getWeekName(week) + ") " + hour + ":" + minute;
date_time.setText(time);
}
};
list.addItemListener(listener_list);
// コンポーネントをフレームに追加する
add(list,BorderLayout.CENTER);
add(date_time,BorderLayout.SOUTH);
// ウインドウの表示
setSize(255,255);
setVisible(true);
}
protected String getWeekName(int week_number)
{
// 1(日曜日)〜7(土曜日)
final String week_name[] = {"","Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
return(week_name[week_number]);
}
}
Source is here. (ZIP Format,1151Byte,Shift-JIS)