Pertanyaan Java mendapatkan waktu saat ini di Israel


Saya tring untuk mendapatkan waktu saat ini di Israel di java ini adalah kode saya:

TimeZone timeZone = TimeZone.getTimeZone("Israel");
Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(timeZone);

DateFormat timeFormat = new SimpleDateFormat("HH:mm");
String curTime=timeFormat.format(calendar.getTime());

tetapi selalu membawa saya 7 jam lebih sedikit dari waktu sekarang di Israel seseorang memiliki gagasan bagaimana mencapai waktu saat ini di Israel?


5
2018-05-10 19:27


asal


Jawaban:


Anda sedang mengatur zona waktu di Anda kalender, tetapi Anda harus mengaturnya di Anda DateFormat. Selain itu, Anda harus menggunakan Asia/Jerusalem sebagai nama zona waktu. Anda tidak membutuhkan Calendar sama sekali - hanya saja new Date() memberikan instan saat ini:

DateFormat timeFormat = new SimpleDateFormat("HH:mm");
timeFormat.setTimeZone(TimeZone.getTimeZone("Asia/Jerusalem"));
String curTime = timeFormat.format(new Date());

Anda harus mencatat bahwa zona waktu di Yerusalem sangat sulit untuk diprediksi (sangat berfluktuasi) jadi jika sumber data zona waktu yang digunakan JVM Anda sudah ketinggalan zaman, itu mungkin tidak akurat.


11
2018-05-10 19:33



Saya tidak yakin apakah "Israel" adalah zona waktu yang valid, coba "Asia / Jerusalem", lihatlah ini pos


3
2018-05-10 19:32



Coba dengan Locale bersama TimeZone jika Anda ingin menampilkan tanggal juga bersama dengan waktu dalam bahasa Anda.

Locale aLocale = new Locale.Builder().setLanguage("iw").setRegion("IL").build();
DateFormat timeFormat = new SimpleDateFormat("MMM y HH:mm", aLocale);
timeFormat.setTimeZone(TimeZone.getTimeZone("Asia/Jerusalem"));
String curTime = timeFormat.format(new Date());

catatan: Ini bukan jawaban dari pertanyaan ini tetapi hanya di sini jika dalam kasus OP mencari lebih lanjut untuk tanggal parsing dalam bahasa Israel.


2
2018-05-10 19:43