Bagaimana mengkonversi tanggal kalender ke yyyy-MM-dd
format.
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String date1 = format1.format(date);
Date inActiveDate = null;
try {
inActiveDate = format1.parse(date1);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Ini akan menghasilkan inActiveDate = Wed Sep 26 00:00:00 IST 2012
. Tapi yang saya butuhkan adalah 2012-09-26
. Tujuan saya adalah membandingkan tanggal ini dengan tanggal lain di basis data saya menggunakan kriteria Hibernate. Jadi saya perlu objek tanggal dalam yyyy-MM-dd
format.
Date
keyyyy-MM-dd
atau mem-parsing String dariyyyy-MM-dd
ke suatuDate
nilai ?? Untuk memformat tanggal, cukup gunakanformat1.format(date)
, untuk menguraikannya, gunakanformat1.parse(someStringValueInTheCorrectFormat)
( new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSSXXX" ) ).format( Calendar.getInstance().getTime() );
Jawaban:
Java
Date
adalah wadah untuk jumlah milidetik sejak 1 Januari 1970, 00:00:00 GMT.Saat Anda menggunakan sesuatu seperti
System.out.println(date)
, Java menggunakanDate.toString()
untuk mencetak konten.Satu-satunya cara untuk mengubahnya adalah mengganti
Date
dan menyediakan implementasi Anda sendiri untukDate.toString()
. Sekarang sebelum Anda menjalankan IDE Anda dan coba ini, saya tidak akan; itu hanya akan memperumit masalah. Sebaiknya Anda memformat tanggal ke format yang ingin Anda gunakan (atau tampilkan).Java 8+
Sebelum ke Jawa 8
Anda harus menggunakan Backport ThreeTen
Berikut ini dipertahankan untuk tujuan historis (sebagai jawaban asli)
Yang bisa Anda lakukan adalah memformat tanggal.
Ini sebenarnya tanggal yang sama, diwakili secara berbeda.
sumber
Calendar
Calendar
Kode Anda salah. Tidak ada gunanya menguraikan tanggal dan menyimpannya sebagai objek Date.
Anda dapat memformat objek tanggal kalender saat Anda ingin menampilkan dan menyimpannya sebagai string.
sumber
waktu java
The jawaban dengan MadProgrammer benar, terutama tip tentang Joda-Time . Pengganti Joda-Time sekarang dibangun ke Java 8 sebagai paket java.time baru . Berikut contoh kode di Java 8.
Saat bekerja dengan tanggal-waktu (sebagai lawan dari tanggal lokal), zona waktu kritis. Hari-bulan tergantung pada zona waktu. Sebagai contoh, zona waktu India adalah
+05:30
(lima setengah jam lebih awal dari UTC), sementara Perancis hanya satu jam di depan. Jadi suatu saat di hari baru di India memiliki satu kencan sedangkan saat yang sama di Perancis memiliki tanggal "kemarin". Membuat keluaran string yang tidak memiliki zona waktu atau informasi offset akan menciptakan ambiguitas. Anda meminta output YYYY-MM-DD jadi saya berikan, tapi saya tidak merekomendasikannya. Alih-alihISO_LOCAL_DATE
saya akan digunakanISO_DATE
untuk mendapatkan output ini:2014-02-25+05:30
Dump untuk menghibur ...
Saat dijalankan ...
Joda-Time
Kode serupa menggunakan perpustakaan Joda-Time , pendahulu untuk java.time.
ISO 8601
Omong-omong, format string input Anda adalah format standar, salah satu dari beberapa format string tanggal-waktu yang praktis yang ditentukan oleh ISO 8601 .
Baik Joda-Time dan java.time menggunakan format ISO 8601 secara default saat mem-parsing dan membuat representasi string dari berbagai nilai tanggal-waktu.
sumber
java.util.Date
objek tidak dapat mewakili tanggal dalam format khusus sebagai gantinya Anda harus menggunakanSimpleDateFormat.format
metode yang mengembalikanstring
.sumber
Untuk mengurai
java.util.Date
objek, Anda harus mengonversinya menjadi String terlebih dahulu menggunakan format Anda sendiri.Tapi saya yakin Anda berlebihan di sini.
sumber
Ini akan menampilkan tanggal Anda + 7 hari dalam format bulan, hari dan tahun di panel jendela JOption.
sumber
sumber
Saya menemukan kode ini di mana tanggal dibandingkan dalam format untuk dibandingkan dengan bidang tanggal di basis data ... mungkin ini mungkin bermanfaat bagi Anda ...
Saat Anda mengonversi string menjadi tanggal menggunakan format simpledate, sulit untuk membandingkan dengan bidang Tanggal di database mysql.
Jadi konversi tanggal string java dalam format menggunakan pilih STR_to_DATE ('tanggal Anda', '% m /% d /% Y') -> dalam format ini, maka Anda akan mendapatkan format tanggal yang tepat dari bidang tanggal mysql.
http://javainfinite.com/java/java-convert-string-to-date-and-compare/
sumber
sumber