JavaでUTCな時間文字列を取得する方法

Javaで"2011-09-07T00:00:00Z"みたいな文字列を作りたかったのに、タイムゾーンの設定がうまく行かなくてハマってました。DateFormatにsetTimeZoneする必要があったようです。忘れた時のためにメモを残します。

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
df.setTimeZone(cal.getTimeZone());
String timestamp = df.format(cal.getTime());

Javaの時間操作系ってわかりづらいですよね。