異なる時間帯ににLocalTimeを取得する方法は?

Faraz:

私はにLocalTimeは、タイムゾーンにとらわれないであることを理解しています。しかし、私は中部標準時(CST)に時間を取得したいと思います。私は与えられていますすべてが文字列での時間です。

String start = "11:00" //11 am CST. 
LocalTime startTime = LocalTime.parse(start);

これは良いのですが、サーバが異なる時間帯に実行されています。だから、午前11時のUTCとしてそれを解釈します。私はにLocalTimeはCSTになりたいです。私はLocalTime.isAfterメソッドを呼び出すことができますので、私は、CST内に必要です。

LocalTime currentTime = LocalTime.now();
boolean afterEleven = currentTime.isAfter(startTime);
amseager:

LocalDateTime.now()実際のショートカットでLocalDateTime.now(Clock.systemDefaultZone())Clock.class(いくつかの日付・時刻を表しているドキュメントを参照)、および静的メソッドは、systemDefaultZone()お使いのPCの日付・時刻を返します。

あなたのケースでは、それは別のゾーンのための「時計」を使用することが可能です( -説明を参照してくださいidのゾーン=「CST」は存在しませんが、あなたの代わりに、「アメリカ/シカゴ」を選択することができ、この答えで)。

LocalTime currentTime = LocalTime.now(Clock.system(ZoneId.of("America/Chicago")));

UPDは適切にタスクを理解していませんでした。このケースでは、実際に変換する方が簡単です currentTimeの代わりにstartTime必要なゾーンに。

LocalTime currentTime = LocalTime.now(Clock.system(ZoneId.of("Europe/London")));

または、オレVVは思い出したように:

LocalTime currentTime = LocalTime.now(ZoneId.of("Europe/London"));

あなたはそのままでそれを比較することができますstartTime(この場合は- 11:00)

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=4170&siteId=1