2017-10-22 3 views
-1

私は現在の日付と時刻を取得しようとしており、現在の時刻と日付、そして次の時刻を含むコレクションを作成します。CETなしで日付/時刻をどのように出力できますか?

私はJavaのかなり初心者であり、2つの問題に直面しています。出力は次のとおりです。

土10月23日夜12時07分27秒CET 1937

土10月23日1時07分27秒CET 1937

  1. どのように私は、日付/時刻を取得することができますCET 1973なし?
  2. なぜ平日(sat)は実際のもの(月曜日)(2日前)でないのですか?

ソースコードです:

SimpleDateFormat format1 = new SimpleDateFormat("EEE, d MMM HH:mm"); 
    System.out.println(format1.getCalendar().getTime()); 
    format1.getCalendar().add(Calendar.HOUR, 1);   
    System.out.println(format1.getCalendar().getTime()); 
+0

この出力を生成するコードを示してください。また、質問を明確にしてください - 1937年10月23日*は土曜日、月曜日ではありません。あなたは1973年を期待していますか? CETは時間に適用されます。年ではない – Felix

+0

土曜日10月23日01:07:27 CET 1937 ...私は(CET1937)なしで私の出力を欲しがって、今週の月曜日の実際の日に平日をしたいですか? – Was

+0

あなたは明らかに今日の日付を取得していない!あなたは10月23日、** 1937 **を取得しています**!あなたのコンピュータに間違った日付がありますか? – Felix

答えて

0

は、正しい日付と時刻がホストコンピュータ上で設定されていることを確認します。お使いのコンピュータが間違って設定されているようです。訪問http://time.is/

厄介な古いCalendarクラスではなく、最新のjava.timeクラスを使用してください。

現在の瞬間をUTCで取得し、最大ナノ秒の分解能で取得します。

Instant instant = Instant.now() ; 

希望する/期待するタイムゾーンを指定します。

ZoneId z = ZoneId.of("Europe/Paris")) ; 

希望のタイムゾーンに調整します。

ZonedDateTime zdt = instant.atZone(z) ; 

曜日を確認します。

DayOfWeek dow = zdt.getDayOfWeek() ; 

この瞬間と次の2時間をそれぞれ収集します。

List<ZonedDateTime> moments = new ArrayList<>(3) ; 
moments.add(zdt) ; 
moments.add(zdt.plusHours(1)) ; 
moments.add(zdt.plusHours(2)) ; 

DateTimeFormatterクラスを使用してこれらの値のいずれかを表す文字列を生成します。検索スタックオーバーフローの詳細については、すでに何度もカバーされています。

関連する問題