2016-08-09 9 views
0

"EDT"であるシステムタイムゾーンで作成されたカレンダーオブジェクトがあります。今まで私はcal.getTime();を取得したときにEDTの日付を出力します。どのように私は同じカレンダーの日付をUTCで取得できますか?デフォルトタイムゾーンをUTCに変換

私は以下を使用して文字列に変換しようとしています...スニペットの下に使用してUTCに

Calendar cal= Calendar.getInstance(TimeZone.getTimeZone("UTC")); 

または変更するタイムゾーンをカレンダーのインスタンスを取得します

`Calendar cal = Calendar.getInstance();  
    String definedDate = CalendarUtils.toString(cal, "MM/dd/yyyy"); 
    System.out.println(definedDate); 


public static String toString(Calendar cal, String pattern) { 
    String str = ""; 
    if (cal!= null) { 
     SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); 
     str = dateFormat.format(cal.getTime()); 
     LOGGER.error("Date : "+str); 
    } 
    return str; 
} 

`

+0

リンク質問を参照してください、ということを行う簡単な直接的な方法があります。 – Tunaki

答えて

0

スニペット以下のように...

cal.setTimeZone(TimeZone.getTimeZone("UTC")); 
+0

タイムゾーンのみを変換します。日付と時刻はシステムのタイムゾーンと同じです。 – Arun

0
Calendar c2 = Calendar.getInstance(TimeZone.getTimeZone("UTC")); 
c2.set(year, month, date, hourOfDay, minute, second); 
System.out.println(sdf.format(c2.getTime())); 
+0

このコードは問題を解決するのに役立ちますが、 _why_および/または_how_に関する追加のコンテキストを提供すると、 の質問はその長期的な価値を大幅に改善します。 の制限事項と前提条件を含む説明を追加するには、回答を編集してください。 –

1

は)(DateFormat.setTimeZoneようにDateFormatにタイムゾーンを設定し、コードの下には試してみてください。

TimeZone timeZone = TimeZone.getTimeZone("UTC"); 
Calendar calendar = Calendar.getInstance(timeZone); 
SimpleDateFormat simpleDateFormat = 
     new SimpleDateFormat("EE MMM dd HH:mm:ss zzz yyyy", Locale.US); 
simpleDateFormat.setTimeZone(timeZone); 

System.out.println("Time zone: " + timeZone.getID()); 
System.out.println("default time zone: " + TimeZone.getDefault().getID()); 
System.out.println(); 

System.out.println("UTC:  " + simpleDateFormat.format(calendar.getTime())); 
System.out.println("Default: " + calendar.getTime()); 
+0

はい、動作します。あなたのご意見ありがとうございます。どのようにUTCインスタンスで同じカレンダーを取得できますか?ここでは文字列に変換しています。 – Arun

+0

問題が解決した場合は、それを印として記入してください。 simpleDateFormat.parse( "Date in String Format")が有効です。 –